如何在使用matplotlib.pyplot时显示节点标签?

时间:2015-04-23 08:49:34

标签: python matplotlib graph networkx

我使用Python进行社交网络分析,非常简单,并且作为新手(对于SNA和Python)。

在我的Mac上使用终端绘制图形时,我已经尝试了所有方法,但仍然只能绘制节点和边缘,但没有节点标签或旁边的节点。

我应该使用哪些脚本来显示标签?

>>> import networkx as nx
>>> import networkx.generators.small as gs
>>> import matplotlib.pyplot as plt
>>> g = gs.krackhardt_kite_graph()
>>> nx.draw(g)
>>> plt.show()

2 个答案:

答案 0 :(得分:3)

尝试使用draw_networkx

import networkx as nx
import networkx.generators.small as gs
import matplotlib.pyplot as plt
g = gs.krackhardt_kite_graph()
nx.draw_networkx(g)
plt.show()

这导致:

enter image description here

with_labels默认为True,因此无需指定

答案 1 :(得分:3)

EdChum给出了一个很好的答案。另一个选项默认情况下不会显示轴并生成一个占据图形略多的图形,而是使用nx.draw,但为其赋予参数with_labels = True。 (对于nx.draw,您需要将with_labels设置为True,但对于nx.draw_networkx,默认为True

import networkx as nx
import networkx.generators.small as gs
import matplotlib.pyplot as plt
g = gs.krackhardt_kite_graph()
nx.draw(g,with_labels=True)
plt.savefig('tmp.png')

enter image description here

请注意,有一个错误,有时plt.show()不会显示标签。从我所能说的,它不是在networkx中,而是与渲染有关。它保存得很好,所以我并不担心会详细跟进它。它出现在我的macbook上使用ipython。不确定它是什么其他系统。更多细节见pylab/networkx; no node labels displayed after update