【发布时间】:2019-09-22 21:42:54
【问题描述】:
我正在使用 networkx 绘制一个简单的社交网络,并有一个节点标签字典,其中字典值是个人姓名。我知道如何用名称标记我的网络中的节点,但最终名称会很长并且网络会很大,因此各种传说将是合适的。图例将由行组成,每行的形式为节点编号,后跟个人姓名。
这是一个简单的例子:
import networkx as nx
import numpy as np
A = np.matrix([[0,1,1,0,0],[1,0,1,0,0],[1,1,0,1,1],[0,0,1,0,1],[0,0,1,1,0]])
labels_dict={0: 'Donald', 1: 'Pete', 2: 'Kamala', 3: 'Elizabeth', 4: 'Bernie'}
G = nx.from_numpy_matrix(A)
pos = nx.spring_layout(G)
nx.draw_networkx(G, pos, node_color='lightgray')
ax=plt
ax.axis('off')
fig = ax.gcf()
plt.show()
当然,这将简单地标记节点 1、2、3、4、5。
我希望图例出现在我的绘图右侧,看起来像下面这样:
- 唐纳德
- 皮特
- 卡玛拉
- 伊丽莎白
- 伯尼
【问题讨论】:
-
networkx 中没有执行此操作的功能。然而,networkx 只是调用 matplotlib 来制作它的图,所以你的问题真的归结为“我如何在 matplotlib 中使用以下项目创建自定义图例”。有一个指南可以帮助您入门here。
-
谢谢。我现在可以看到我需要做什么了。
标签: python matplotlib networkx