【问题标题】:How can I change the node size in a networkx graph?如何更改 networkx 图中的节点大小?
【发布时间】:2021-10-19 20:00:07
【问题描述】:

我做了一个图表。现在,当我想更改节点大小时,我遇到了一个问题。

当我使用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)

如何更改节点的大小?

【问题讨论】:

  • 请发帖minimal reproducible example。我无法将其粘贴到编辑器中并运行它
  • 什么是number_list?
  • 请再看看。
  • 你给了 36 个节点和 43 条边。因此,应该有 36 个 node_size,而不是 43 个。(节点是图中的圆圈,边是连接线)。 nx.draw_networkx_nodes(G, pos, node_size=times_list[:len(pos)]) 可以,但可能不是您的想法。

标签: python matplotlib networkx


【解决方案1】:

你可以使用这条线:

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) 条目,您可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2013-05-10
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多