Graphviz 圆点:避免树太平
我得到了以下图表:Graphviz 圆点:避免树太平,graphviz,dot,Graphviz,Dot,我得到了以下图表: digraph G { user1 -> SuperUser user2 -> SuperUser user3 -> SuperUser user4 -> SuperUser user5 -> SuperUser user6 -> SuperUser user7 -> SuperUser user8 -> SuperUser user9 -
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的答案很好,但我忘了补充一点,我的图形非常大,大小不可预测,因此解决方案不能是“手动”是的。您可以使用
rank
和不可见链接(style=invi
)创建如下级别:
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
有关更多信息,请参阅图表。如果您能更准确地告诉我们您希望最终结果是什么样子,这将有所帮助。您的问题的答案是“是”,并且@tk421给出了基本概念。更多信息,请多输入!关于深度,你是否自己写笔记(即你是否对写作有影响)。如果是后者,并且您知道“节点”的数量,您还可以计算所需列组的数量并将其添加到文件中,否则,在回答tk421的注释中建议的一些脚本可能是最佳解决方案。是否可以自动执行类似的操作?(我编辑了我的问题)如果您愿意编写一个过滤器,对发送到
dot
的内容进行预处理,您也许可以这样做。