Python 使用networkX输出树结构
我正在使用networkX生成一个树形结构,如下所示(我遵循以下步骤) 我想画一棵树,如下图所示。 但是,我得到一个错误,说Python 使用networkX输出树结构,python,networkx,graphviz,pygraphviz,Python,Networkx,Graphviz,Pygraphviz,我正在使用networkX生成一个树形结构,如下所示(我遵循以下步骤) 我想画一棵树,如下图所示。 但是,我得到一个错误,说AttributeError:module'networkx'没有属性'write\u dot'。我的networkx版本是1.11(使用conda)。我尝试了不同的方法,但没有一种有效 因此,我很想知道是否有其他方法可以使用networkx绘制树结构,以获得与图中所述类似的输出。请让我知道。我认为这个问题在networkx 2.x上得到了解决,但在此之前,您应该明确导入
AttributeError:module'networkx'没有属性'write\u dot'
。我的networkx版本是1.11(使用conda)。我尝试了不同的方法,但没有一种有效
因此,我很想知道是否有其他方法可以使用networkx绘制树结构,以获得与图中所述类似的输出。请让我知道。我认为这个问题在networkx 2.x上得到了解决,但在此之前,您应该明确导入这样的函数
from networkx.drawing.nx_agraph import write_dot
或
我希望这能起作用。您可以完全使用
pygraphviz
绘制有向图
首先需要遵循以下步骤,因为没有graphviz
(从现在起),pygraphviz不起作用
pygraphviz
wheel文件pip安装pygraphviz-1.3.1-cp34-none-win32.whl
dot.exe
添加到主机路径
e、 g.在windows控制面板->系统->编辑环境变量->修改路径上dot
和png
文件
工作代码
import pygraphviz as pgv
G=pgv.AGraph(directed=True)
#Attributes can be added when adding nodes or edge
G.add_node("ROOT", color='red')
for i in range(5):
G.add_node("Child_%i" % i, color='blue')
G.add_node("Grandchild_%i" % i, color='blue')
G.add_node("Greatgrandchild_%i" % i, color='blue')
G.add_edge("ROOT", "Child_%i" % i, color='blue')
G.add_edge("Child_%i" % i, "Grandchild_%i" % i, color='blue')
G.add_edge("Grandchild_%i" % i, "Greatgrandchild_%i" % i, color='blue')
# write to a dot file
G.write('test.dot')
#create a png file
G.layout(prog='dot') # use dot
G.draw('file.png')
PNG文件from networkx.drawing.nx_pydot import write_dot
import pygraphviz as pgv
G=pgv.AGraph(directed=True)
#Attributes can be added when adding nodes or edge
G.add_node("ROOT", color='red')
for i in range(5):
G.add_node("Child_%i" % i, color='blue')
G.add_node("Grandchild_%i" % i, color='blue')
G.add_node("Greatgrandchild_%i" % i, color='blue')
G.add_edge("ROOT", "Child_%i" % i, color='blue')
G.add_edge("Child_%i" % i, "Grandchild_%i" % i, color='blue')
G.add_edge("Grandchild_%i" % i, "Greatgrandchild_%i" % i, color='blue')
# write to a dot file
G.write('test.dot')
#create a png file
G.layout(prog='dot') # use dot
G.draw('file.png')