Как установить график заполнения области? - PullRequest
0 голосов
/ 31 октября 2018

Как настроить график, чтобы попытаться заполнить выделенную ему область? При увеличении количества узлов он просто уменьшается в размере, но также остается в одной строке, хотя вертикальный размер (40) позволяет размещать его вниз. Если вы удалите rankdir, он будет расположен вертикально, но также в одну строку.

digraph "test_graph"{
  rankdir = LR;
  bgcolor = whitesmoke;
  graph [size = "15, 40"];
  node [shape = circle,
        style = filled,
        margin = 0,
        fontsize = 14,
        color = sandybrown];
  edge [fontsize = 10,
        arrowhead = vee];
  1->2 [label = "R"];
  2->3 [label = "R"];
  3->4 [label = "R"];
  3->5 [label = "B"];
  4->1 [label = "R"];
  5->6 [label = "U"];
  6->7 [label = "U"];
  7->8 [label = "U"];
  7->9 [label = "F"];
  8->5 [label = "U"];
  9->10 [label = "F"];
  10->11 [label = "D"];
  11->12 [label = "D"];
  12->13 [label = "D"];
  13->10 [label = "D"];
  13->14 [label = "L"];
  14->15 [label = "L"];
  15->16 [label = "D"];
  16->17 [label = "D"];
  17->18 [label = "D"];
  17->19 [label = "L"];
  18->15 [label = "D"];
  19->20 [label = "F"];
  20->21 [label = "F"];
  21->22 [label = "F"];
  21->23 [label = "L"];
  22->19 [label = "F"];
  23->24 [label = "L"];
  24->25 [label = "F"];
}

1 Ответ

0 голосов
/ 05 ноября 2018

Вам нужно будет выбрать подходящие узлы, которые

  • соединены одним ребром
  • подключайтесь к другим узлам таким образом, чтобы заполнить доступную ширину так, как вам нравится

, а затем

  • соедините их в нужном порядке невидимыми краями (чтобы избежать переупорядочивания графвизом)
  • ранжирование их на одном уровне, так что они появляются один под другим

В конкретных терминах это означает, что добавление

1 -> 10 -> 19[ style = invis ];
{ rank = same; 1 10 19 }

как раз перед закрывающей фигурной скобкой, как две последние строки, выдаст

enter image description here

что, насколько я понимаю, ваше требование, то, что вы хотите.

...