【问题标题】:Legend based on the color of nodes of a NetworkX graph基于 NetworkX 图节点颜色的图例
【发布时间】:2020-03-26 22:16:43
【问题描述】:

我正在尝试使用 NetworkX 制作网络图,但遇到了两个问题。我无法让背景颜色变为透明或白色,并且我被困在浅灰色背景中。当我尝试将此图保存为 png 时,它给了我一个空图像。

另外,我正在尝试根据节点的颜色向图表添加一个图例,但我不确定我在那里做错了什么。

有人可以帮忙解决这个问题吗?

plt.figure(figsize=(24,18))
plt.rcParams['figure.facecolor'] = 'white'   # DOESN'T WORK

G = nx.Graph()
pos = nx.random_layout(G)
nx.draw_networkx_nodes(G, pos, alpha=0.5, linewidths=3, node_color=[x[1]['color'] for x in G.nodes(data=True)], node_size=[150*x[1]['size'] for x in G.nodes(data=True)])
nx.draw_networkx_labels(G, pos, font_size=10, font_color='#1b1b1b', font_weight='bold', font_family='sans-serif')
nx.draw_networkx_edges(G, pos, edge_color='grey', width=[0.4*x[2]['width'] for x in G.edges(data=True)])
plt.legend(dict_colors.values(), dict_colors.keys())  # DOESN'T WORK
plt.savefig("Network.png", transparent=True)  # DOESN'T WORK
plt.show()

【问题讨论】:

  • 在您的示例中,您的图表是空的。所以没什么可画的。你在别处定义你的图表吗?不知道为什么你会得到一个灰色的背景。
  • 是的,我已经用一系列循环在别处定义了节点和边。该图显示正常,所以我没有包含该代码。
  • 提供一个小例子会很有帮助。只是一些想法,您可能将节点设置得太小。

标签: python-3.x matplotlib data-visualization networkx


【解决方案1】:

用 - 修复了图例

import Color from colour

plt.legend(handles=[Patch(facecolor=Color(val).hex, label=key) for key, val in dict_colors.items()])

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2021-04-30
    • 2021-08-31
    • 2017-09-02
    相关资源
    最近更新 更多