Python Networkx节点的中心性测量范围



在绘制degree_centrality图形时如何选择给定值的范围

B1:  0.64
E2: 0.61
C3: 0.60
B2: 0.58
M1: 0.50
C1: 0.328
R1: 0.228
def draw(G, pos, measures, measure_name):

nodes = nx.draw_networkx_nodes(G, pos, node_size=250, cmap=plt.cm.plasma, 
node_color=list(measures.values()),
nodelist=measures.keys())
nodes.set_norm(mcolors.SymLogNorm(linthresh=0.01, linscale=1, base=10))
# labels = nx.draw_networkx_labels(G, pos)
edges = nx.draw_networkx_edges(G, pos)
plt.title(measure_name)
plt.colorbar(nodes)
plt.axis('off')
plt.show()
pos = nx.spring_layout(G, seed=675)
draw(G, pos, nx.degree_centrality(G), 'Degree Centrality')

我正在尝试使用网络中心性测量可视化绘制可视化中心性度量,但我只对可视化值范围内的节点感兴趣。

我只想从上面给定的范围中可视化0.64到0.60的范围。

B1:  0.64
E2: 0.61
C3: 0.60

一种方法是减少字典measures:

def draw(G, pos, measures, measure_name):

# reduce measures
min_val, max_val = 0.1, 0.4
measures = {k:v for k, v in measures.items() if v<=max_val and v>=min_val}
...

注意,min_valmax_val可以作为函数的参数添加,也可以在传递值给函数之前进行子集(因此,单独计算中心性度量,将其子集,然后传递给函数)。

最新更新