Kri*_*673 1 python plot graph graph-layout networkx
我使用这样的pytextrank
包创建了一个图形对象:
import pytextrank
### ...........................
### Some steps and calculations
### ...........................
graph, ranks = pytextrank.text_rank(path_stage1)
Run Code Online (Sandbox Code Playgroud)
我可以使用这个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()
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,这些词主要集中在中心周围.我希望看到各类词之间的分离更高.我怎么做?
您正在寻找的是一种不同的布局(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()
Run Code Online (Sandbox Code Playgroud)
您可以使用一些布局来找到适合您需求的布局.
另一个选择是将图形保存到文件中,并使用gephi加载它,它具有一个很好的GUI,用于可视化和探索图形.(还支持多种图形布局算法).