【问题标题】:How to display a network with better separation using the Networkx package?如何使用 Networkx 包显示具有更好分离度的网络?
【发布时间】: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()

但是正如你所看到的,这些词大多集中在中心周围。我希望看到词类之间有更高的分离度。我该怎么做?

【问题讨论】:

    标签: python plot graph networkx graph-layout


    【解决方案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 用于可视化和探索您的图表。 (还支持多种图形布局算法)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多