digraph FamilyTree { subgraph Generation0 { rank = "same"; abraham [label = "Abraham", shape = "box", color = "blue"]; mona [label = "Mona", shape = "box", color = "pink"]; abrahamAndmona [shape = "point"]; abraham -> abrahamAndmona [dir = "none"] abrahamAndmona -> mona [dir = "none"] clancy [label = "Clancy", shape = "box", color = "blue"]; jackeline [label = "Jackeline", shape = "box", color = "pink"]; clancyAndjackeline [shape = "point"]; clancy -> clancyAndjackeline [dir = "none"] clancyAndjackeline -> jackeline [dir = "none"] } subgraph Generation1 { rank = "same"; herb [label = "Herb", shape = "box", color = "blue"]; homer [label = "Homer", shape = "box", color = "blue"]; homerAndmarge [shape = "point"]; marge [label = "Marge", shape = "box", color = "pink"]; patty [label = "Patty", shape = "box", color = "pink"]; selma [label = "Selma", shape = "box", color = "pink"]; homer -> homerAndmarge [dir = "none"] homerAndmarge -> marge [dir = "none"] } subgraph abrahamAndmonaKids { rank = "same"; herbKid [label = "herbKid", shape = "point"]; abrahamAndmonaKids [label = "abrahamAndmonaKids", shape = "point"]; herbKid -> abrahamAndmonaKids [dir = "none"] homerKid [label = "homerKid", shape = "point"]; abrahamAndmonaKids -> homerKid [dir = "none"] } herbKid -> herb [dir = "none"] abrahamAndmona -> abrahamAndmonaKids [dir = "none"] homerKid -> homer [dir = "none"] subgraph clancyAndjackelineKids { rank = "same"; margeKid [label = "margeKid", shape = "point"]; pattyKid [label = "pattyKid", shape = "point"]; margeKid -> pattyKid [dir = "none"] selmaKid [label = "selmaKid", shape = "point"]; pattyKid -> selmaKid [dir = "none"] } margeKid -> marge [dir = "none"] pattyKid -> patty [dir = "none"] clancyAndjackeline -> pattyKid [dir = "none"] selmaKid -> selma [dir = "none"] subgraph Generation2 { rank = "same"; bart [label = "Bart", shape = "box", color = "blue"]; lisa [label = "Lisa", shape = "box", color = "pink"]; maggie [label = "Maggie", shape = "box", color = "pink"]; ling [label = "Ling", shape = "box", color = "blue"]; } subgraph homerAndmargeKids { rank = "same"; bartKid [label = "bartKid", shape = "point"]; lisaKid [label = "lisaKid", shape = "point"]; bartKid -> lisaKid [dir = "none"] maggieKid [label = "maggieKid", shape = "point"]; lisaKid -> maggieKid [dir = "none"] } bartKid -> bart [dir = "none"] lisaKid -> lisa [dir = "none"] homerAndmarge -> lisaKid [dir = "none"] maggieKid -> maggie [dir = "none"] ling -> selma [dir = "none"] }