如何改变网络图中的节点大小?



我做了一个图表。现在我面临一个问题,当我想改变节点的大小。

当我使用nx.draw_networkx_nodes(G, pos, node_size=times_list, node_color='Gray', node_shape='o')时,我得到以下错误:

ValueError: s must be a scalar, or float array-like with the same size as x and y

我可以理解pos大小和times_list大小不相同,但我无法解决我的问题。

代码:

import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
fig = plt.subplots(figsize =(32,24))
G.add_edges_from(number_list)
pos=nx.spring_layout(G)
nx.draw_networkx(G,pos)
edge_labels = duration_list
nx.draw_networkx_edge_labels(G,pos,edge_labels=dict(zip(map(tuple,number_list), edge_labels)))
G.size(500)

如何改变节点的大小?

你可以使用这一行:

nx.draw_networkx_nodes(G, pos, node_size=times_list[:len(pos)], node_color='Gray', node_shape='o')

您的问题是pos的条目少于times_list,因此您的标签多于节点,这导致了您的问题。只需从times_list中获取前len(pos)个条目,就可以解决这个问题。