我有一张网络树的图像,我只是想使每个节点之间的线变小,因为如果我有一个庞大的网络,则线会太大而使其他节点的文本变小。
P.S:我正在为图表使用字典
G = nx.Graph(graphDict)
plt.figure(figsize=(100, 100))
pos = nx.fruchterman_reingold_layout(G, k=0.3, scale=50, seed=101)
nx.draw(G, pos=pos, with_labels=True, font_size=10, font_weight='bold',
font_color='black', node_size=0,edge_color='lightgrey', width=2)
plt.savefig("Topologie.pdf")
plt.show()
答案 0 :(得分:0)
边缘的大小在概念上有2个不同的方面-宽度和长度。宽度是可配置的,并且可以轻松地为每个边缘设置,而长度是由节点的位置定义的。
要更改边缘的宽度,请调用draw_networkx_edges,并使用“ width”参数,该参数接受float(用于恒定的边缘尺寸)或float数组。
更改边缘的长度可以通过更改布局(由'pos'参数设置)来完成。布局定义了每个节点的位置。
由于您有一棵树,因此合理的选择是使用“点”定位,如下所示:
import networkx as nx
import matplotlib.pyplot as plt
T = nx.DiGraph()
T.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)])
pos = nx.nx_pydot.pydot_layout(T, prog='dot')
nx.draw_networkx(T, pos=pos, arrows= True)
plt.show()
如果您故意选择了“ fruchterman_reingold_layout”(又名spring_layout),则可以使用“ k”参数来设置节点之间的正确距离。根据文档:
k:浮点(默认=无) 节点之间的最佳距离。如果无,则将距离设置为 1 / sqrt(n),其中n是节点数。增加此值 将节点移得更远。