【问题标题】:Plotting Networkx graph in Python在 Python 中绘制 Networkx 图
【发布时间】:2017-11-25 08:01:32
【问题描述】:

我最近开始在 python 中使用 networkx 库来生成和可视化图表。我从一个简单的代码(包括 4 个节点)开始,如图所示

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edges_from([(1 ,2) , (2 ,3) , (1 ,3) , (1 ,4) ])
nx.draw(G)
plt.show()

当我连续两次运行代码时,相同代码的输出如图所示(图的方向是随机的)

是否可以生成具有相同/固定方向的图的输出?

【问题讨论】:

    标签: python matplotlib graph data-visualization networkx


    【解决方案1】:

    默认情况下,使用弹簧布局来绘制图形。每次绘制时,它都可以有一个新的方向。

    还有其他可用的布局。

    使用例如nx.draw_circularnx.draw_spectral 将始终为您提供相同的布局。

    您还可以使用字典来定义节点的位置,该字典将 nodenumber 映射到一个位置。

    import networkx as nx
    import matplotlib.pyplot as plt
    G = nx.Graph()
    G.add_edges_from([(1 ,2) , (2 ,3) , (1 ,3) , (1 ,4) ])
    pos = { 1: (20, 30), 2: (40, 30), 3: (30, 10),4: (0, 40)} 
    
    nx.draw_networkx(G, pos=pos)
    
    plt.show()
    

    【讨论】:

    • 谢谢!硬编码位置方法非常有用。
    猜你喜欢
    • 1970-01-01
    • 2013-10-13
    • 2021-05-03
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多