Graphviz 如何设置图形填充区域?

Graphviz 如何设置图形填充区域?,graphviz,dot,Graphviz,Dot,如何设置图形以尝试填充分配给它的区域?随着节点数量的增加,它的大小只会减小,但也会保持在一行中,尽管垂直大小(40)允许向下放置。如果删除rankdir,则它将垂直放置,但也将放置在一行中 digraph "test_graph"{ rankdir = LR; bgcolor = whitesmoke; graph [size = "15, 40"]; node [shape = circle, style = filled, margin = 0

如何设置图形以尝试填充分配给它的区域?随着节点数量的增加,它的大小只会减小,但也会保持在一行中,尽管垂直大小(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"];
}

您将需要选择合适的节点

  • 它们由一条边连接
  • 连接到其他节点的方式可以根据需要填充可用宽度
然后

  • 通过不可见边按所需顺序连接它们(以避免graphviz对它们重新排序)
  • 将它们排列在同一个花盆上,使它们看起来一个比另一个低
具体而言,这意味着

1 -> 10 -> 19[ style = invis ];
{ rank = same; 1 10 19 }
最后两行将在结束前产生大括号


就我所知,这就是您的需求。您需要选择合适的节点

  • 它们由一条边连接
  • 连接到其他节点的方式可以根据需要填充可用宽度
然后

  • 通过不可见边按所需顺序连接它们(以避免graphviz对它们重新排序)
  • 将它们排列在同一个花盆上,使它们看起来一个比另一个低
具体而言,这意味着

1 -> 10 -> 19[ style = invis ];
{ rank = same; 1 10 19 }
最后两行将在结束前产生大括号


就我所知,这就是你的要求,你想要什么。

你必须更准确地知道你想要实现什么。您期望的结果是什么,“好”结果应该是什么样子的?看起来像从以下位置复制/重新发布:。(自动谷歌翻译)文本是:如何设置图形以尝试填充分配给它的区域?随着节点数量的增加,它的大小只会减小,但也会保持在一行中,尽管垂直大小(40)允许向下放置。如果你移除rankdir,它会垂直放置,但也会在一条线上。@vaettchen,理想情况下1:边没有交叉(我一直有一个平面图)2:最紧密的(尽可能多的结)位于A4上printing@albert,是的,这是我问题的副本,标签上没有人,与英语版本不同的是,你必须更准确地知道你想要实现什么。您期望的结果是什么,“好”结果应该是什么样子的?看起来像从以下位置复制/重新发布:。(自动谷歌翻译)文本是:如何设置图形以尝试填充分配给它的区域?随着节点数量的增加,它的大小只会减小,但也会保持在一行中,尽管垂直大小(40)允许向下放置。如果你移除rankdir,它会垂直放置,但也会在一条线上。@vaettchen,理想情况下1:边没有交叉(我一直有一个平面图)2:最紧密的(尽可能多的结)位于A4上printing@albert,是的,这是我问题的副本,标签上没有人,与英文版本不同