【问题标题】:Use tuples to draw Digraph in Python在 Python 中使用元组绘制有向图
【发布时间】:2020-03-22 18:49:01
【问题描述】:

我想使用元组列表绘制graphviz的有向图。

from graphviz import Digraph
from itertools import chain   

edges = [("first","sub-first"),("second","sub-second"),("sub-first","sub-second"),("third","sub-third")]
nodes = list(dict.fromkeys([ i for i in chain(*data)]))

您可能理解,edges 是一个由箭头 (x, y) 组成的元组列表。 另外,nodes 是已解压的edges 列表,没有重复。有了这些数据,我的目标是呈现这样的图表:

【问题讨论】:

  • 你到底在问什么?如何将这些元组写入可由graphviz解析的文件?边的数量与此有什么关系,如果给定了边,“自环”有什么用?
  • 哦,很抱歉描述不清楚。是的,它是关于如何使用元组来制作由 graphvis 解析的图。关于数字的事情意味着输入的元组可以超过给定的数据,但下面的答案只是表明它是多么没有意义哈哈。我什至不知道以基本方式使用 Digraph 的方式:(无论如何,感谢您的问题以澄清我的观点:)

标签: python python-3.x tuples graph-theory pygraphviz


【解决方案1】:

我不完全确定您遇到了什么问题 - 首先,如果节点有边,您不需要定义节点 - 您可以将元组的边列表传递给 graphviz edges 函数,它接受一个可迭代的:

from graphviz import Digraph

edges = [("first","sub-first"),("second","sub-second"),("sub-first","sub-second"),("third","sub-third")]
graph = Digraph(format='png')
graph.edges(edges)
graph.render()

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2017-06-15
    • 2013-08-29
    • 2020-03-31
    相关资源
    最近更新 更多