如何使用Networkx包显示更好分离的网络?

4
我使用pytextrank包创建了一个图形对象,如下所示:
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()

在这里输入图片描述

但是,如您所见,大部分单词都集中在中心。我希望看到更高的单词类别间隔。我该怎么办?

1个回答

7
您需要的是一种不同的布局(Networkx术语,用于在绘制图形时使用的节点定位算法)。默认情况下,nx.draw()使用弹簧布局。更改布局可以按以下方式完成:
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()

你可以尝试不同的布局方式,找到适合你需求的一种。
另一个选择是将你的图表保存到文件中,并使用 gephi 进行加载,它有一个漂亮的 GUI 用于可视化和探索你的图表。(还支持几种图表布局算法)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接