如何使用 Networkx 包显示具有更好分离度的网络?
Posted
技术标签:
【中文标题】如何使用 Networkx 包显示具有更好分离度的网络?【英文标题】:How to display a network with better separation using the Networkx package? 【发布时间】:2019-05-29 21:16:32 【问题描述】:我使用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】:您正在寻找的是不同的layout(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()
您可以尝试几种布局来找到适合您需求的布局。
另一种选择是将您的图表保存到一个文件中,并使用gephi 加载它,它有一个很好的 GUI 用于可视化和探索您的图表。 (还支持多种图形布局算法)。
【讨论】:
以上是关于如何使用 Networkx 包显示具有更好分离度的网络?的主要内容,如果未能解决你的问题,请参考以下文章