Anu*_*ush 2 python matplotlib networkx
如果我使用networkx制作一棵树并将其绘制,则节点重叠。有没有办法画出来所以没有重叠?
import matplotlib.pyplot as plt
import networkx as nx
T = nx.generators.balanced_tree(2, 5)
nx.draw(T)
plt.show()
Run Code Online (Sandbox Code Playgroud)
Joe*_*oel 15
如果您想在没有额外库的情况下执行此操作,请查看此答案,它展示了一种纯粹在 networkx 中获取分层树布局或圆形布局的方法:
我计划很快将其稍微修改的版本添加到 networkx 中。
我不是专家,但是这里是使用该pydot
库及其graph_viz
依赖项的代码。这些库是Anaconda Python随附的,但默认情况下未安装,因此请首先从命令提示符处执行以下操作:
conda install pydot
Run Code Online (Sandbox Code Playgroud)
然后是从循环树改编的代码。
import matplotlib.pyplot as plt
import networkx as nx
import pydot
from networkx.drawing.nx_pydot import graphviz_layout
T = nx.balanced_tree(2, 5)
pos = graphviz_layout(T, prog="twopi")
nx.draw(T, pos)
plt.show()
Run Code Online (Sandbox Code Playgroud)
如果将窗口调整为正方形,结果是
或者,如果您希望使用自上而下的树,则可以使用替换该"twopi"
代码中的字符串"dot"
,并且如果使生成的窗口变宽,则会得到
另外,如果您使用字符串"circo"
代替并扩大窗口范围,则会得到
归档时间: |
|
查看次数: |
143 次 |
最近记录: |