Undirected Bipartite Graph

Tasks

1. add nodes A-J 2. add a constraint that nodes A-E are at the same horizontal coordinate 3. add a constraint that nodes F-J are at the same horizontal coordinate 4. add a constraint that nodes A-E are all to the left of nodes F-J 5. make nodes A-E triangles 6. add edges from node A to nodes F, G, and J 7. add edges from node B to nodes G and J 8. add edges from node C to each of the nodes F, G, H, I, and J 9. add edges from node D to nodes G and H 10. add edges from node E to nodes G and H 11. make the edges thin with color steelblue 12. fill nodes A-E with color tomato and nodes F-J with color green :config draft false

JSON Representation

{
"directed": false,
"hasParents": false,
"nodes": {
  "A": {
    "nodeShape": "triangle",
    "fillColor": "tomato"
  },
  "B": {
    "nodeShape": "triangle",
    "fillColor": "tomato"
  },
  "C": {
    "nodeShape": "triangle",
    "fillColor": "tomato"
  },
  "D": {
    "nodeShape": "triangle",
    "fillColor": "tomato"
  },
  "E": {
    "nodeShape": "triangle",
    "fillColor": "tomato"
  },
  "F": {
    "fillColor": "green"
  },
  "G": {
    "fillColor": "green"
  },
  "H": {
    "fillColor": "green"
  },
  "I": {
    "fillColor": "green"
  },
  "J": {
    "fillColor": "green"
  }
},
"edges": {
  "AF": {
    "source": "A",
    "target": "F"
  },
  "AG": {
    "source": "A",
    "target": "G"
  },
  "AJ": {
    "source": "A",
    "target": "J"
  },
  "BG": {
    "source": "B",
    "target": "G"
  },
  "BJ": {
    "source": "B",
    "target": "J"
  },
  "CF": {
    "source": "C",
    "target": "F"
  },
  "CG": {
    "source": "C",
    "target": "G"
  },
  "CH": {
    "source": "C",
    "target": "H"
  },
  "CI": {
    "source": "C",
    "target": "I"
  },
  "CJ": {
    "source": "C",
    "target": "J"
  },
  "DG": {
    "source": "D",
    "target": "G"
  },
  "DH": {
    "source": "D",
    "target": "H"
  },
  "EG": {
    "source": "E",
    "target": "G"
  },
  "EH": {
    "source": "E",
    "target": "H"
  }
},
"constraints": [
  {
    "meaning": "Nodes A-E are at the same horizontal coordinate",
    "constraints": [
      "A.x          =          E.x",
      "B.x          =          E.x",
      "C.x          =          E.x",
      "D.x          =          E.x",
      "E.x          =          E.x"
    ]
  },
  {
    "meaning": "Nodes F-J are at the same horizontal coordinate",
    "constraints": [
      "F.x          =          J.x",
      "G.x          =          J.x",
      "H.x          =          J.x",
      "I.x          =          J.x",
      "J.x          =          J.x"
    ]
  },
  {
    "meaning": "Nodes A-E are all to the left of nodes F-J",
    "constraints": [
      "A.x <= F.x",
      "B.x <= F.x",
      "C.x <= F.x",
      "D.x <= F.x",
      "E.x <= F.x"
    ]
  }
],
"_positions": {
  "A": [
    -3.7565614803605856,
    6.560952147564189
  ],
  "B": [
    -3.756561480360585,
    -2.357044864605489
  ],
  "C": [
    -3.756561480360584,
    -8.7742246374789
  ],
  "D": [
    -3.756561480360584,
    -5.262448495953438
  ],
  "E": [
    -3.7565614803605833,
    0
  ],
  "F": [
    4.068174796094681,
    -6.904035892900189
  ],
  "G": [
    4.06817479609468,
    4.4866245444353945
  ],
  "H": [
    4.068174796094682,
    -2.711045211769911
  ],
  "I": [
    4.068174796094681,
    0.9887443119206928
  ],
  "J": [
    4.068174796094682,
    8.202802555089164
  ]
}
}