So I was writing some graphviz code to produce the subgroup lattice of an order 48 group with a total of 98 subgroups (counting trivial group and entire group). So I used invisible nodes to rank them by the subgroup's order as I have done for smaller examples in the past, but this time something odd happens, it is ranking the order 4 and order 8 subgroups on the same row, and likewise the order 6 and order 12 subgroups, this despite explicitly connected all the relevant order with directed edges and having set rankdir at the beginning. GraphViz code:
digraph G{
rankdir = "BT" ;
node [shape=plaintext] Order1 -> Order2 -> Order3 -> Order4 -> Order6 -> Order8 -> Order12 -> Order16 -> Order24 -> Order48 [style=invis];
{rank = same Order1; Subgroup1}
{rank = same Order2; Subgroup2 ; Subgroup3 ; Subgroup4 ; Subgroup5 ; Subgroup6 ; Subgroup7 ; Subgroup8 ; Subgroup9 ; Subgroup10 ; Subgroup11 ; Subgroup12 ; Subgroup13 ; Subgroup14 ; Subgroup15 ; Subgroup16 ; Subgroup17 ; Subgroup18 ; Subgroup19 ; Subgroup20}
{rank = same Order3; Subgroup21 ; Subgroup22 ; Subgroup23 ; Subgroup24}
{rank = same Order4; Subgroup25 ; Subgroup26 ; Subgroup27 ; Subgroup28 ; Subgroup29 ; Subgroup30 ; Subgroup31 ; Subgroup32 ; Subgroup33 ; Subgroup34 ; Subgroup35 ; Subgroup36 ; Subgroup37 ; Subgroup38 ; Subgroup39 ; Subgroup40 ; Subgroup41 ; Subgroup42 ; Subgroup43 ; Subgroup44 ; Subgroup45 ; Subgroup46 ; Subgroup47 ; Subgroup48 ; Subgroup49 ; Subgroup50 ; Subgroup51 ; Subgroup52 ; Subgroup53 ; Subgroup54 ; Subgroup55}
{rank = same Order6; Subgroup56 ; Subgroup57 ; Subgroup58 ; Subgroup59 ; Subgroup60 ; Subgroup61 ; Subgroup62 ; Subgroup63 ; Subgroup64 ; Subgroup65 ; Subgroup66 ; Subgroup67}
{rank = same Order8; Subgroup68 ; Subgroup29 ; Subgroup70 ; Subgroup71 ; Subgroup72 ; Subgroup73 ; Subgroup74 ; Subgroup75 ; Subgroup76 ; Subgroup77 ; Subgroup78 ; Subgroup79 ; Subgroup80 ; Subgroup81 ; Subgroup82 ; Subgroup83 ; Subgroup84 ; Subgroup85 ; Subgroup86}
{rank = same Order12; Subgroup87 ; Subgroup88 ; Subgroup89 ; Subgroup90 ; Subgroup91}
{rank = same Order16; Subgroup92 ; Subgroup93 ; Subgroup94}
{rank = same Order24; Subgroup95 ; Subgroup96 ; Subgroup97}
{rank = same Order48; Subgroup98}
Order1[label=""];
Order2[label=""];
Order3[label=""];
Order4[label=""];
Order6[label=""];
Order8[label=""];
Order12[label=""];
Order16[label=""];
Order24[label=""];
Order48[label=""];
Subgroup1[shape=ellipse, peripheries=1, label="(1,1)"];
Subgroup2[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup3[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup4[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup5[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup6[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup7[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup8[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup9[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup10[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup11[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup12[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup13[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup14[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup15[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup16[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup17[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup18[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup19[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup20[shape=ellipse, peripheries=1, label="(2,1)"];
Subgroup21[shape=ellipse, peripheries=1, label="(3,1)"];
Subgroup22[shape=ellipse, peripheries=1, label="(3,1)"];
Subgroup23[shape=ellipse, peripheries=1, label="(3,1)"];
Subgroup24[shape=ellipse, peripheries=1, label="(3,1)"];
Subgroup25[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup26[shape=ellipse, peripheries=1, label="(4,1)"];
Subgroup27[shape=ellipse, peripheries=1, label="(4,1)"];
Subgroup28[shape=ellipse, peripheries=1, label="(4,1)"];
Subgroup29[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup30[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup31[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup32[shape=ellipse, peripheries=1, label="(4,1)"];
Subgroup33[shape=ellipse, peripheries=1, label="(4,1)"];
Subgroup34[shape=ellipse, peripheries=1, label="(4,1)"];
Subgroup35[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup36[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup37[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup38[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup39[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup40[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup41[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup42[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup43[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup44[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup45[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup46[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup47[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup48[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup49[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup50[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup51[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup52[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup53[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup54[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup55[shape=ellipse, peripheries=1, label="(4,2)"];
Subgroup56[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup57[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup58[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup59[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup60[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup61[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup62[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup63[shape=ellipse, peripheries=1, label="(6,1)"];
Subgroup64[shape=ellipse, peripheries=1, label="(6,2)"];
Subgroup65[shape=ellipse, peripheries=1, label="(6,2)"];
Subgroup66[shape=ellipse, peripheries=1, label="(6,2)"];
Subgroup67[shape=ellipse, peripheries=1, label="(6,2)"];
Subgroup68[shape=ellipse, peripheries=1, label="(8,5)"];
Subgroup69[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup70[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup71[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup72[shape=ellipse, peripheries=1, label="(8,5)"];
Subgroup73[shape=ellipse, peripheries=1, label="(8,5)"];
Subgroup74[shape=ellipse, peripheries=1, label="(8,5)"];
Subgroup75[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup76[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup77[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup78[shape=ellipse, peripheries=1, label="(8,2)"];
Subgroup79[shape=ellipse, peripheries=1, label="(8,2)"];
Subgroup80[shape=ellipse, peripheries=1, label="(8,2)"];
Subgroup81[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup82[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup83[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup84[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup85[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup86[shape=ellipse, peripheries=1, label="(8,3)"];
Subgroup87[shape=ellipse, peripheries=1, label="(12,4)"];
Subgroup88[shape=ellipse, peripheries=1, label="(12,4)"];
Subgroup89[shape=ellipse, peripheries=1, label="(12,4)"];
Subgroup90[shape=ellipse, peripheries=1, label="(12,4)"];
Subgroup91[shape=ellipse, peripheries=1, label="(12,3)"];
Subgroup92[shape=ellipse, peripheries=1, label="(16,11)"];
Subgroup93[shape=ellipse, peripheries=1, label="(16,11)"];
Subgroup94[shape=ellipse, peripheries=1, label="(16,11)"];
Subgroup95[shape=ellipse, peripheries=1, label="(24,12)"];
Subgroup96[shape=ellipse, peripheries=1, label="(24,12)"];
Subgroup97[shape=ellipse, peripheries=1, label="(24,13)"];
Subgroup98[shape=ellipse, peripheries=1, label="(48,48)"];
}
I've yet to put in the code for the subgroup membership relations, partly because I don't want to do to all that work unless I can actually fix this ranking issue.
(Sidenote: I had to manually add the 4 spaces to each line because it wouldn't copy+paste right, seemed to be mistaking the linebreaks in my graphviz codes as linebreaks here, thereby ending the codeblock, how do I avoid this in the future?)
Subgroup29 is same rank as both Order4 and Order8 making Order4 effectively coursing Order4 and Order8 to have same rank, renaming one of the occurrences solves the problem