【问题标题】:Plot network chain in python在 python 中绘制网络链
【发布时间】:2018-08-19 00:15:19
【问题描述】:

我想使用图形和 python 绘制一个执行链。我必须在绘图中保持左右,这可以通过 networkx 和 matplotlib 实现吗?

类似这样的:

我试过了:

import networkx as nx
import matplotlib.pyplot as plt

g = nx.DiGraph()
g.add_nodes_from([1,2,3,4,5])
g.add_edge(1,3)
g.add_edge(2,3)
g.add_edge(3,5)
g.add_edge(3,4)

nx.draw(g,with_labels=True)
plt.draw()
plt.show()

但我不知道如何申报订单。我有:

【问题讨论】:

  • 到目前为止你做了什么?
  • 请附上您的数据示例。 (比如说,对于包含的图表。)
  • 已添加到帖子中
  • 我认为你不能在 networkx 中做到这一点。
  • 任何其他已知的库 @DYZ ?

标签: python matplotlib graph networkx


【解决方案1】:

可以使用networkx中的graphviz_layout创建网络链。

安装:

  • pydot 使用 write_dot(G, path)
  • pygraphviz 使用 graphviz_layout(g, prog='dot')

代码:

import matplotlib.pyplot as plt
import networkx as nx


g = nx.DiGraph()
g.add_nodes_from([1,2,3,4,5,6,7])
g.add_edge(1,3)
g.add_edge(2,3)
g.add_edge(3,5)
g.add_edge(3,4)
g.add_edge(4,6)
g.add_edge(5,7)
g.add_edge(4,8)
g.add_edge(5,9)

nx.nx_pydot.write_dot(g,'DiGraph.dot')
pos = nx.drawing.nx_agraph.graphviz_layout(g, prog='dot')
nx.draw(g,pos,with_labels=True)
plt.show()

返回:

【讨论】:

    猜你喜欢
    • 2016-05-17
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 2017-02-03
    • 2023-03-11
    相关资源
    最近更新 更多