【发布时间】:2016-04-17 07:33:27
【问题描述】:
我一直在寻找在 python 中的 graphviz 中指定图中节点位置的方法。我在 dot 中找到了rank command 的子图,这是我正在寻找的,但我找不到在 python 中的 graphviz 中组合子图和排名的方法。我也尝试强制节点位置,但也没有工作。我创建了一个我想要实现的简单示例。
这是我的代码:
from graphviz import Digraph
top_nodes = ['a', 'b', 'c']
other_nodes = ['d', 'e', 'f', 'g', 'm', 'n']
g = Digraph('test', format='png')
for n in top_nodes:
g.node(str(n), color='red')
for n in other_nodes:
g.node(str(n))
g.edge('a', 'd')
g.edge('d', 'g')
g.edge('g', 'm')
g.edge('m', 'n')
g.edge('b', 'e')
g.edge('b', 'f')
g.edge('e', 'n')
g.edge('c', 'f')
g.view()
这是输出:
我希望红色节点(“来源”)位于同一级别的图表顶部,只要保留分层布局,其余节点的位置就不是那么重要了。
【问题讨论】:
标签: python graph graphviz rank