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

Kat*_*ryn 2 python graph matplotlib 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()
Run Code Online (Sandbox Code Playgroud)

Joe*_*oel 5

EdChum 给出了很好的答案。另一个默认情况下不显示轴并生成占用更多图形的图形的选项是使用nx.draw但给它参数with_labels = True。(对于nx.draw,您需要设置with_labelsTrue,但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')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

请注意,存在一个错误,有时 plt.show() 不会显示标签。据我所知,它不在 networkx 中,而是与渲染有关。它保存得很好,所以我不担心详细跟进。它显示给我在 macbook 上使用 ipython。不确定它在什么其他系统上。更多细节在pylab/networkx;更新后不显示节点标签