点:避免过于水平的树
Dot : Avoid a too horizontal tree
我有以下图表:
digraph G {
user1 -> SuperUser
user2 -> SuperUser
user3 -> SuperUser
user4 -> SuperUser
user5 -> SuperUser
user6 -> SuperUser
user7 -> SuperUser
user8 -> SuperUser
user9 -> SuperUser
user10 -> SuperUser
user11 -> SuperUser
user12 -> SuperUser
user13 -> SuperUser
}
我使用以下方式渲染它:
$ dot -Tpng test_dot -o test_dot.png
有没有一种方法可以避免像那样水平渲染太多?
我知道我可以使用 rankdir = LR
但我的问题和我想的一样
我想要一个不止一个层次的组织,这可能吗?
编辑:tk421 的答案很好,但我忘了补充一点,我的图很大而且大小不可预测,所以解决方案不能 "manual"
是的。您可以使用 rank
和不可见链接 (style = invis
) 来创建关卡,如下所示:
digraph G {
user1 -> SuperUser
user2 -> SuperUser
user3 -> SuperUser
user4 -> SuperUser
user5 -> SuperUser
user6 -> SuperUser
user7 -> SuperUser
user8 -> SuperUser
user9 -> SuperUser
user10 -> SuperUser
user11 -> SuperUser
user12 -> SuperUser
user13 -> SuperUser
user5 -> user4 [ style = invis ];
user9 -> user10 [ style = invis ];
{ rank = same; user1; user2; user3; user4 }
{ rank = same; user5; user6; user7; user8; user9 }
{ rank = same; user10; user11; user12; user13}
}
这将产生:
当然,您可以尝试一下,让它看起来像您想要的那样。
还有其他布局样式工具作为 graphviz 包的一部分。
例如,如果你想要一个更圆的图形,你可以使用 twopi
而不是 dot
。
$ twopi -Granksep=2 sample.dot -o twopi.png
有关详细信息,请参阅 Graphviz 的 Documentation。
我有以下图表:
digraph G {
user1 -> SuperUser
user2 -> SuperUser
user3 -> SuperUser
user4 -> SuperUser
user5 -> SuperUser
user6 -> SuperUser
user7 -> SuperUser
user8 -> SuperUser
user9 -> SuperUser
user10 -> SuperUser
user11 -> SuperUser
user12 -> SuperUser
user13 -> SuperUser
}
我使用以下方式渲染它:
$ dot -Tpng test_dot -o test_dot.png
有没有一种方法可以避免像那样水平渲染太多?
我知道我可以使用 rankdir = LR
但我的问题和我想的一样
我想要一个不止一个层次的组织,这可能吗?
编辑:tk421 的答案很好,但我忘了补充一点,我的图很大而且大小不可预测,所以解决方案不能 "manual"
是的。您可以使用 rank
和不可见链接 (style = invis
) 来创建关卡,如下所示:
digraph G {
user1 -> SuperUser
user2 -> SuperUser
user3 -> SuperUser
user4 -> SuperUser
user5 -> SuperUser
user6 -> SuperUser
user7 -> SuperUser
user8 -> SuperUser
user9 -> SuperUser
user10 -> SuperUser
user11 -> SuperUser
user12 -> SuperUser
user13 -> SuperUser
user5 -> user4 [ style = invis ];
user9 -> user10 [ style = invis ];
{ rank = same; user1; user2; user3; user4 }
{ rank = same; user5; user6; user7; user8; user9 }
{ rank = same; user10; user11; user12; user13}
}
这将产生:
当然,您可以尝试一下,让它看起来像您想要的那样。
还有其他布局样式工具作为 graphviz 包的一部分。
例如,如果你想要一个更圆的图形,你可以使用 twopi
而不是 dot
。
$ twopi -Granksep=2 sample.dot -o twopi.png
有关详细信息,请参阅 Graphviz 的 Documentation。