2017-06-22 209 views
2

我最近开始在python中使用networkx库来生成和可视化图形图。我开始与如图在Python中绘制Networkx图

import networkx as nx 
import matplotlib.pyplot as plt 
G = nx.Graph() 
G.add_edges_from([(1 ,2) , (2 ,3) , (1 ,3) , (1 ,4) ]) 
nx.draw(G) 
plt.show() 

当运行连续两次的代码的简单代码(包括4个节点的),则如图中的图像为相同的代码的输出(该图的取向是随机的)

image 1image 2

是否有可能产生的田块具有相同/固定的定向输出?

回答

3

默认使用弹簧布局绘制图形。这可以在每次绘制时都有一个新的方向。

还有其他布局可用。

enter image description here

使用例如nx.draw_circularnx.draw_spectral会给你总是相同的布局。

您也可以使用将nodenumber映射到某个位置的字典来定义节点的位置。

import networkx as nx 
import matplotlib.pyplot as plt 
G = nx.Graph() 
G.add_edges_from([(1 ,2) , (2 ,3) , (1 ,3) , (1 ,4) ]) 
pos = { 1: (20, 30), 2: (40, 30), 3: (30, 10),4: (0, 40)} 

nx.draw_networkx(G, pos=pos) 

plt.show() 

enter image description here

+0

谢谢!硬编码位置的方法是相当有帮助的。 –