我有以下图形:
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
是否存在避免这样的水平渲染的方法? https://github.com/vuejs/vue/issues/6709
我知道我可以使用rankdir = LR
,但是我的问题与我想的一样
我想要一个以上层次的组织,这可能吗?
编辑:tk421的答案很好,但我忘了补充一点,即我的图形很大,并且大小不可预测,因此解决方案不能是“手动的”
答案 0 :(得分:1)
是的。您可以使用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。