from pydot import Edge, Node, Dot
default = "ellipse"
disease = "octagon"
food = "rect"
factor = "diamond"
cholesterol = Node("Cholesterol", shape=default)
UVB = Node("UVB", shape=default)
cholesterol_UVB = Node(" ", shape="point")
vitaminD = Node("Vitamin D", shape=default)
folic_acid = Node("Folic Acid", shape=default)
greens = Node("Greens\n(Cabbage, Spinach)", shape=food)
fatty_fish = Node("Fatty fish", shape=food)
fat_food = Node("Fat food\n(egg yolk, cheese,\n proccessed meat)", shape=food)
vitD_def = Node("Rickets,\nOsteperosis", shape=disease)
birth_defects = Node("Birth defects", shape=disease)
melanin = Node("Melanin\n(dark skin)", shape=default)
genetics = Node("Genetics", shape=default)
pitu_gland = Node("Pituitary gland", shape=default)
sunglasses = Node("Sunglasses", shape=default)
cholesterol_disease = Node("Heart disease,\nstroke", shape=disease)
melanoma = Node("Melanoma\n(skin cancer)", shape=disease)
ApoE4 = Node("ApoE4 mutation", shape=default)
suntan = Node("Sun tan", shape=default)
nodes = [cholesterol,UVB,cholesterol_UVB,vitaminD,folic_acid,greens,vitD_def,UVB,cholesterol_UVB,birth_defects,melanin]
nodes += [genetics,sunglasses,cholesterol_disease,melanoma,ApoE4,fatty_fish,suntan,fat_food,pitu_gland]
map(lambda n: n.set_fontname("droid sans"), nodes);
tee_size = 1.5
UVB2chol = Edge(UVB, cholesterol_UVB, arrowhead="none")
chol2UVB = Edge(cholesterol, cholesterol_UVB, arrowhead="none")
UVBchol2vitD = Edge(cholesterol_UVB, vitaminD)
UVB2folic = Edge(UVB, folic_acid, arrowhead="tee", arrowsize=tee_size)
greens2folic = Edge(greens, folic_acid)
fish2vitD = Edge(fatty_fish, vitaminD)
vitD2vitD_def = Edge(vitaminD, vitD_def, arrowhead="tee", arrowsize=tee_size)
folic2folic_def = Edge(folic_acid, birth_defects, arrowhead="tee", arrowsize=tee_size)
melanin2UVB = Edge(melanin, UVB, arrowhead="tee", arrowsize=tee_size)
genetics2melanin = Edge(genetics, melanin)
suntan2melanin = Edge(suntan, melanin)
pitu2suntan = Edge(pitu_gland, suntan)
glasses2pitu = Edge(sunglasses, pitu_gland, arrowhead="tee", arrowsize=tee_size)
chol2disease = Edge(cholesterol, cholesterol_disease)
UVB2cancer = Edge(UVB, melanoma)
Apo2chol = Edge(ApoE4, cholesterol)
food2chol = Edge(fat_food, cholesterol)
edges = [UVB2chol,chol2UVB,UVBchol2vitD,UVB2folic,greens2folic,vitD2vitD_def,folic2folic_def,fish2vitD,food2chol]
edges += [melanin2UVB,genetics2melanin,pitu2suntan,suntan2melanin,glasses2pitu,chol2disease,UVB2cancer,Apo2chol]
graph = Dot(graph_type='digraph',strict=True, layout="dot")
map(graph.add_node, nodes)
map(graph.add_edge, edges)
graph.set_ratio(1)
graph
graph.write_png("the_cholesterol_also_rises.png")
True
!the_cholesterol_also_rises.png