我正在尝试生成一个树形结构的流程图。我已经使用networkx创建了代表性图形,但我需要一种方法在输出绘图时显示树形结构。我使用matplotlib.pylab来绘制图形。
我需要展示类似于这里所示的结构。尽管我没有子图。
如何保证像那样的结构?
以下是一些例子:
我已经能够使用pylab和graphviz显示图形,但它们都没有提供我想要的树形结构。我尝试过networkx提供的所有布局,但它们都没有显示出层次结构。我不确定需要给它哪些选项/模式或者是否需要使用权重。任何建议都会非常有帮助。
@jterrace:
这是我用来生成上面图形的大致概述。我添加了一些标签,但除此之外就是一样的。
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_node("ROOT")
for i in xrange(5):
G.add_node("Child_%i" % i)
G.add_node("Grandchild_%i" % i)
G.add_node("Greatgrandchild_%i" % i)
G.add_edge("ROOT", "Child_%i" % i)
G.add_edge("Child_%i" % i, "Grandchild_%i" % i)
G.add_edge("Grandchild_%i" % i, "Greatgrandchild_%i" % i)
plt.title("draw_networkx")
nx.draw_networkx(G)
plt.show()
g = nx.full_rary_tree(2, 10)
,如果我打印边缘,我会得到:[(0, 1),(0, 2),(1, 3),(1, 4),(2, 5),...]
,但它将以不同的顺序进行可视化... - CodeKingPlusPlusPygraphviz
时遇到任何问题,可以尝试使用pip install --install-option="--include-path=/usr/local/include/" --install-option="--library-path=/usr/local/lib/" pygraphviz
安装。请注意,这不改变原意,只是将其翻译成了更加通俗易懂的中文。 - Rotailgraphviz
之后,这个方法对我有效(在我的情况下使用brew install graphviz
安装)。 - Shivendra