【问题标题】:draw parallel edges using networkx使用networkx绘制平行边
【发布时间】:2018-05-04 03:45:17
【问题描述】:

下面是一个非常简单的例子

import networkx as nx
import matplotlib.pyplot as plt

g = nx.DiGraph()
g.add_nodes_from([1,2,3])
g.add_edge(1,2, weight = 1)
g.add_edge(1,3, weight = 1)
g.add_edge(2,1, weight = 2)
nx.draw(g,with_labels=True)
plt.draw()
plt.show()

我想将重量标签添加到边缘并显示 1,2 和 2,1 的平行边缘,我该怎么做。我正在使用 jupyter 笔记本。

非常感谢!

【问题讨论】:

    标签: python networkx


    【解决方案1】:

    这是一种在边缘添加权重标签的方法:

    pos=nx.spring_layout(g)
    nx.draw_networkx_nodes(g, pos)
    nx.draw_networkx_labels(g, pos)
    nx.draw_networkx_edges(g,pos)
    nx.draw_networkx_edge_labels(g,pos,edge_labels={x:g[x[0]][x[1]]['weight'] for x in g.edges})
    plt.axis('off')
    plt.show()
    

    输出:

    不幸的是,我不认为 networkx(或更准确地说:matplotlib)能够处理平行边缘绘制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 2020-05-20
      相关资源
      最近更新 更多