// Num of branches: 1 digraph g { splines="ortho" subgraph cluster_r1 { // Create a node for the range r1 r1[shape=box,label="Pos 1",color=gray,style=filled,fillcolor=gray] color=gray { rank=same // Create cluster nodes within the range r1 r1c1[label="a, b, c",style=filled,fillcolor="1",colorscheme=paired12] r1c2[label="a, d, e",style=filled,fillcolor="1",colorscheme=paired12] r1c3[label="e, f, g",style=filled,fillcolor="1",colorscheme=paired12] // Horizontally align nodes within the same range r1 -> r1c1[style=invis] r1c1 -> r1c2[weight=10,style=invis] r1c2 -> r1c3[weight=10,style=invis] } } // Create edges from clusters of the range r1 // to clusters within subsequent ranges r1c1 -> r2c1[weight=0.6666666666666666,label="0.67",fontcolor=gray60,constraint=false] r1c2 -> r2c2[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r1c2 -> r2c1[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r1c3 -> r2c2[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] subgraph cluster_r2 { // Create a node for the range r2 r2[shape=box,label="Pos 2",color=gray,style=filled,fillcolor=gray] color=gray { rank=same // Create cluster nodes within the range r2 r2c1[label="a, b",style=filled,fillcolor="1",colorscheme=paired12] r2c2[label="d, f",style=filled,fillcolor="1",colorscheme=paired12] // Horizontally align nodes within the same range r2 -> r2c1[style=invis] r2c1 -> r2c2[weight=10,style=invis] } } // Create edges from clusters of the range r2 // to clusters within subsequent ranges r2c1 -> r3c1[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r2c2 -> r3c1[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r2c2 -> r3c2[weight=1.0,label="1.00",fontcolor=gray60,constraint=false] subgraph cluster_r3 { // Create a node for the range r3 r3[shape=box,label="Pos 3",color=gray,style=filled,fillcolor=gray] color=gray { rank=same // Create cluster nodes within the range r3 r3c1[label="a, f, g",style=filled,fillcolor="1",colorscheme=paired12] r3c2[label="d, f",style=filled,fillcolor="1",colorscheme=paired12] // Horizontally align nodes within the same range r3 -> r3c1[style=invis] r3c1 -> r3c2[weight=10,style=invis] } } // Create edges from clusters of the range r3 // to clusters within subsequent ranges r3c1 -> r5c3[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r3c1 -> r5c4[weight=0.5,label="0.50",fontcolor=gray60,constraint=false] r3c1 -> r5c2[weight=0.6666666666666666,label="0.67",fontcolor=gray60,constraint=false] r3c2 -> r4c2[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] subgraph cluster_r4 { // Create a node for the range r4 r4[shape=box,label="Pos 4",color=gray,style=filled,fillcolor=gray] color=gray { rank=same // Create cluster nodes within the range r4 r4c1[label="a, b, c",style=filled,fillcolor="1",colorscheme=paired12] r4c2[label="a, d, e",style=filled,fillcolor="1",colorscheme=paired12] r4c3[label="b, c",style=filled,fillcolor="1",colorscheme=paired12] r4c4[label="b, c, e",style=filled,fillcolor="1",colorscheme=paired12] // Horizontally align nodes within the same range r4 -> r4c1[style=invis] r4c1 -> r4c2[weight=10,style=invis] r4c2 -> r4c3[weight=10,style=invis] r4c3 -> r4c4[weight=10,style=invis] } } // Create edges from clusters of the range r4 // to clusters within subsequent ranges r4c1 -> r5c3[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r4c1 -> r5c2[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r4c1 -> r5c1[weight=0.5,label="0.50",fontcolor=gray60,constraint=false] r4c2 -> r5c2[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r4c2 -> r5c1[weight=0.5,label="0.50",fontcolor=gray60,constraint=false] r4c3 -> r5c1[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r4c3 -> r5c3[weight=0.3333333333333333,label="0.33",fontcolor=gray60,constraint=false] r4c4 -> r5c3[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] subgraph cluster_r5 { // Create a node for the range r5 r5[shape=box,label="Pos 5",color=gray,style=filled,fillcolor=gray] color=gray { rank=same // Create cluster nodes within the range r5 r5c1[label="a, c, d",style=filled,fillcolor="1",colorscheme=paired12] r5c2[label="a, f",style=filled,fillcolor="1",colorscheme=paired12] r5c3[label="b, f",style=filled,fillcolor="1",colorscheme=paired12] r5c4[label="d, f, g",style=filled,fillcolor="1",colorscheme=paired12] // Horizontally align nodes within the same range r5 -> r5c1[style=invis] r5c1 -> r5c2[weight=10,style=invis] r5c2 -> r5c3[weight=10,style=invis] r5c3 -> r5c4[weight=10,style=invis] } } // Create edges from clusters of the range r5 // to clusters within subsequent ranges r5c1 -> r6c5[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c1 -> r6c2[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c1 -> r6c4[weight=0.5,label="0.50",fontcolor=gray60,constraint=false] r5c1 -> r6c1[weight=0.5,label="0.50",fontcolor=gray60,constraint=false] r5c2 -> r6c1[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c3 -> r6c3[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c3 -> r6c1[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c3 -> r6c2[weight=0.3333333333333333,label="0.33",fontcolor=gray60,constraint=false] r5c4 -> r6c6[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c4 -> r6c5[weight=0.25,label="0.25",fontcolor=gray60,constraint=false] r5c4 -> r6c4[weight=0.5,label="0.50",fontcolor=gray60,constraint=false] subgraph cluster_r6 { // Create a node for the range r6 r6[shape=box,label="Pos 6",color=gray,style=filled,fillcolor=gray] color=gray { rank=same // Create cluster nodes within the range r6 r6c1[label="a, b, c",style=filled,fillcolor="1",colorscheme=paired12] r6c2[label="b, c",style=filled,fillcolor="1",colorscheme=paired12] r6c3[label="b, c, g",style=filled,fillcolor="1",colorscheme=paired12] r6c4[label="c, d, g",style=filled,fillcolor="1",colorscheme=paired12] r6c5[label="c, g",style=filled,fillcolor="1",colorscheme=paired12] r6c6[label="e, g",style=filled,fillcolor="1",colorscheme=paired12] // Horizontally align nodes within the same range r6 -> r6c1[style=invis] r6c1 -> r6c2[weight=10,style=invis] r6c2 -> r6c3[weight=10,style=invis] r6c3 -> r6c4[weight=10,style=invis] r6c4 -> r6c5[weight=10,style=invis] r6c5 -> r6c6[weight=10,style=invis] } } // Create edges from clusters of the range r6 // to clusters within subsequent ranges // Vertically align range nodes r1 -> r2 -> r3 -> r4 -> r5 -> r6[weight=10,style=invis] }