Python Networkx根据不同的中心性度量对节点进行着色

2024-09-29 02:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想画一个网络,其中每个节点的颜色根据该节点的中心。你知道吗

我对python非常陌生,到目前为止,我有我的网络和每个节点的中心值字典。例:根据某些连续的颜色光谱,大的集中度将被着色为深色,低的集中度将被着色为浅色。你知道吗

到目前为止

sw0 = nx.watts_strogatz_graph(300,3,0.05)
dcent = nx.degree_centrality(sw1)
ecent = nx.degree_centrality(sw1)
bcent = nx.betweenness_centrality(sw1)
ccent = nx.closeness_centrality(sw1)

plt.figure(1)
nx.draw(sw0,pos=None,with_labels=False,node_size=5,width=0.05)
plt.savefig("sw0.png",dpi=500)

任何帮助,包括链接到进一步的研究是非常感谢的。 谢谢。你知道吗


Tags: 网络字典节点颜色plt光谱中心着色
1条回答
网友
1楼 · 发布于 2024-09-29 02:20:45

您需要将颜色值列表传递给nx.draw公司方法。 最简单的形式是将dcent dict值转换为一个列表:

import networkx as nx
import matplotlib.pyplot as plt

sw0 = nx.watts_strogatz_graph(300,3,0.05)
dcent = nx.degree_centrality(sw0)
dcent_color = [dcent[i] for i in range(len(dcent))]
ecent = nx.degree_centrality(sw0)
bcent = nx.betweenness_centrality(sw0)
ccent = nx.closeness_centrality(sw0)

plt.figure(1)
nx.draw(sw0,pos=None,with_labels=False,node_size=5,node_color=dcent_color,width=0.05)
plt.savefig("sw0.png",dpi=500)

Resulting Image

相关问题 更多 >