如何使用networkx在图形中显示节点名称?

Mac*_*eus 10 python graph matplotlib networkx

我有代码

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()

G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 1), (2, 3)])

nx.draw(G)
plt.savefig("graph.png")
plt.show()
Run Code Online (Sandbox Code Playgroud)

它绘制了以下图表: 在此输入图像描述

但是,我需要显示标签.如何在图形的节点内显示数值和单词(一,二,三和四)?

rya*_*nmc 20

您只需要使用nx.Draw()调用with_labels = True参数:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()

G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 1), (2, 3)])

nx.draw(G,with_labels=True)
plt.savefig("graph.png")
plt.show()
Run Code Online (Sandbox Code Playgroud)

你也可以调用font_size,font_color等.

https://networkx.github.io/documentation/latest/reference/drawing.html

  • 谢谢!我很困惑,因为我正在关注一些[旧手册](http://www.python-course.eu/networkx.php),但没有出现此参数。为了显示单词中的数字,我使用了 `H = nx.relabel_nodes(G, {1: 'one', 2: 'two', 3: 'three', 4: 'four'})` 和 `nx.draw (H, with_labels=True)` (2认同)