0

我有以下graphviz输入:

digraph para
{
   node [shape=record];

   rankdir=BT;

   0 [label=<0<SUB>0,0</SUB>>];
   1 [label=<1<SUB>1,1</SUB>>];
   2 [label=<2<SUB>0,2</SUB>>];
   3 [label=<2<SUB>1,1</SUB>>];
   4 [label=<2<SUB>2,0</SUB>>];
   5 [label=<3<SUB>1,3</SUB>>];
   6 [label=<3<SUB>2,2</SUB>>];
   7 [label=<3<SUB>3,1</SUB>>];
   8 [label=<4<SUB>0,4</SUB>>];
   9 [label=<4<SUB>1,3</SUB>>];
   10 [label=<4<SUB>2,2</SUB>>];
   11 [label=<4<SUB>3,1</SUB>>];
   12 [label=<4<SUB>4,0</SUB>>];
   13 [label=<5<SUB>1,5</SUB>>];
   14 [label=<5<SUB>2,4</SUB>>];
   15 [label=<5<SUB>3,3</SUB>>];
   16 [label=<5<SUB>4,2</SUB>>];
   17 [label=<5<SUB>5,1</SUB>>];
   18 [label=<6<SUB>0,6</SUB>>];
   19 [label=<6<SUB>1,5</SUB>>];
   20 [label=<6<SUB>2,4</SUB>>];
   21 [label=<6<SUB>3,3</SUB>>];
   22 [label=<6<SUB>4,2</SUB>>];
   23 [label=<6<SUB>5,1</SUB>>];
   24 [label=<6<SUB>6,0</SUB>>];
   25 [label=<7<SUB>1,7</SUB>>];
   26 [label=<7<SUB>2,6</SUB>>];
   27 [label=<7<SUB>3,5</SUB>>];
   28 [label=<7<SUB>4,4</SUB>>];
   29 [label=<7<SUB>5,3</SUB>>];
   30 [label=<7<SUB>6,2</SUB>>];
   31 [label=<7<SUB>7,1</SUB>>];
   32 [label=<8<SUB>0,8</SUB>>];
   33 [label=<8<SUB>1,7</SUB>>];
   34 [label=<8<SUB>2,6</SUB>>];
   35 [label=<8<SUB>3,5</SUB>>];
   36 [label=<8<SUB>4,4</SUB>>];
   37 [label=<8<SUB>5,3</SUB>>];
   38 [label=<8<SUB>6,2</SUB>>];
   39 [label=<8<SUB>7,1</SUB>>];
   40 [label=<10<SUB>1,9</SUB>>];
   41 [label=<7<SUB>7,1</SUB>>];
   42 [label=<8<SUB>8,0</SUB>>];
   43 [label=<5<SUB>4,1</SUB>>];
   44 [label=<8<SUB>3,6</SUB>>];
   45 [label=<8<SUB>5,4</SUB>>];
   46 [label=<8<SUB>7,2</SUB>>];
   47 [label=<1<SUB>1,1</SUB>>];
   48 [label=<2<SUB>2,0</SUB>>];
   49 [label=<3<SUB>1,3</SUB>>];
   50 [label=<3<SUB>2,2</SUB>>];
   51 [label=<3<SUB>3,1</SUB>>];
   52 [label=<4<SUB>4,0</SUB>>];
   53 [label=<6<SUB>1,5</SUB>>];
   54 [label=<6<SUB>2,4</SUB>>];
   55 [label=<7<SUB>3,5</SUB>>];
   56 [label=<7<SUB>6,2</SUB>>];
   57 [label=<7<SUB>7,1</SUB>>];
   58 [label=<8<SUB>0,8</SUB>>];
   59 [label=<8<SUB>3,5</SUB>>];
   60 [label=<9<SUB>4,6</SUB>>];
   61 [label=<1<SUB>0,1</SUB>>];
   62 [label=<4<SUB>1,4</SUB>>];
   63 [label=<5<SUB>2,3</SUB>>];
   64 [label=<6<SUB>2,5</SUB>>];
   65 [label=<6<SUB>6,1</SUB>>];
   66 [label=<7<SUB>2,5</SUB>>];
   67 [label=<7<SUB>3,4</SUB>>];
   68 [label=<7<SUB>6,1</SUB>>];
   69 [label=<7<SUB>7,0</SUB>>];
   70 [label=<8<SUB>3,6</SUB>>];
   71 [label=<8<SUB>4,5</SUB>>];
   72 [label=<9<SUB>3,6</SUB>>];
   73 [label=<5<SUB>1,5</SUB>>];
   74 [label=<5<SUB>3,3</SUB>>];
   75 [label=<6<SUB>4,2</SUB>>];
   76 [label=<6<SUB>5,1</SUB>>];
   77 [label=<7<SUB>4,4</SUB>>];
   78 [label=<8<SUB>0,8</SUB>>];

   {rank=same 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40}
   {rank=same 41 42}
   {rank=same 43 44 45 46}
   {rank=same 47 48 49 50 51 52 53 54 55 56 57 58 59 60}
   {rank=same 61 62 63 64 65 66 67 68 69 70 71 72}
   {rank=same 73 74 75 76 77 78}

   4->5;
   10->13;
   24->29;
   17->22;
   12->15;
   25->20;
   39->46;
   30->76;
   36->59;
   4->47;
   27->58;
   27->44;
   29->75;
   37->56;
   30->71;
   18->43;
   7->50;
   35->78;
   8->49;
   38->57;
   21->54;
   20->53;
   9->50;
   6->49;
   4->61;
   14->43;
   24->41;
   29->70;
   10->51;
   20->73;
   15->52;
   31->69;
   31->69;
   35->70;
   22->74;
   16->64;
   23->67;
   29->45;
   33->67;
   30->68;
   24->65;
   12->63;
   5->48;
   40->60;
   9->62;
   25->54;
   4->49;
   40->72;
   37->60;
   22->55;
   18->63;
   24->76;
   34->59;
   3->48;
   0->47;
   19->54;
   32->55;
   27->67;
   37->72;
   31->46;
   22->66;
   5->50;
   32->66;
   2->49;
   29->77;
   0->61;
   26->55;
   18->53;
   35->77;
   15->54;
   11->52;
   28->59;
   1->48;
   29->56;
   37->69;
   31->42;
   18->73;
   30->57;
   20->74;
   25->58;
   25->44;
   8->43;
   18->64;
   4->51;
   13->52;
   34->71;
   27->75;
   27->78;
   28->76;
}

我试图按如下方式对节点进行排名:

   {rank=same 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40}
   {rank=same 41 42}
   {rank=same 43 44 45 46}
   {rank=same 47 48 49 50 51 52 53 54 55 56 57 58 59 60}
   {rank=same 61 62 63 64 65 66 67 68 69 70 71 72}
   {rank=same 73 74 75 76 77 78}

但是,在我看来,只有第一个等级被正确分配(对于节点 0、1、2、...、40)。你能帮我看看其他组的排名有什么问题吗?为什么他们不会彼此分开?

4

1 回答 1

1

rank=same 只能对列出的那些节点强制相同的排名,不能保证两个 rank=same 获得不同的排名。此外,您图中的层次结构似乎与所选子图不匹配尝试用集群和/或节点着色替换您的排名以分析问题出在哪里。例如:

subgraph cluster1 {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40}
subgraph cluster2 {41 42}
subgraph cluster3 {43 44 45 46}
subgraph cluster4 {47 48 49 50 51 52 53 54 55 56 57 58 59 60}
subgraph cluster5 {61 62 63 64 65 66 67 68 69 70 71 72}
subgraph cluster6 {73 74 75 76 77 78}

或者

{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40}
node[style=filled]
{node[fillcolor=red] 41 42}
{node[fillcolor=blue] 43 44 45 46}
{node[fillcolor=salmon] 47 48 49 50 51 52 53 54 55 56 57 58 59 60}
{node[fillcolor=pink] 61 62 63 64 65 66 67 68 69 70 71 72}
{node[fillcolor=green] 73 74 75 76 77 78}
于 2019-11-26T12:15:42.477 回答