如何在NetowrkX图形中更改边缘线的大小

时间:2019-02-09 20:26:15

标签: python networkx

我有一张网络树的图像,我只是想使每个节点之间的线变小,因为如果我有一个庞大的网络,则线会太大而使其他节点的文本变小。

P.S:我正在为图表使用字典

https://imgur.com/a/nxVvPDX

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()

1 个答案:

答案 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是节点数。增加此值           将节点移得更远。