Python 如何使用Networkx软件包以更好的分离方式显示网络?

Python 如何使用Networkx软件包以更好的分离方式显示网络?,python,plot,graph,networkx,graph-layout,Python,Plot,Graph,Networkx,Graph Layout,我使用pytextrank包创建了一个graph对象,如下所示: import pytextrank ### ........................... ### Some steps and calculations ### ........................... graph, ranks = pytextrank.text_rank(path_stage1) 我可以使用networkx包制作networkx图形,如下所示: import networkx as

我使用
pytextrank
包创建了一个graph对象,如下所示:

import pytextrank
### ........................... 
### Some steps and calculations
### ...........................
graph, ranks = pytextrank.text_rank(path_stage1)
我可以使用
networkx
包制作
networkx
图形,如下所示:

import networkx as nx
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(50,50))
nx.draw(graph, with_labels=True) 

plt.show()


但正如你所看到的,这些词大多集中在中心。我希望看到不同类别的词之间有更高的分离。如何做到这一点?

您要寻找的是另一种不同的方法(Networkx的术语,用于绘制图形时使用的节点定位算法)。默认情况下,
nx.draw()
使用spring布局。可以按以下方式更改布局:

import networkx as nx
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(50,50))
pos = nx.spectral_layout(graph)
nx.draw(graph, pos=pos, with_labels=True) 

plt.show()
您可以使用一些布局来找到适合您需要的布局

另一个选项是将图形保存到一个文件中,并加载它,它有一个很好的GUI用于可视化和浏览图形。(还支持多种图形布局算法)