【问题标题】:open .dot formatted graph from python从 python 打开 .dot 格式的图形
【发布时间】:2013-10-24 23:50:31
【问题描述】:

由于我可以在 python 中使用 matplotlib 绘制曲线,我想知道是否有任何方法可以以某种方式显示 .dot 图。我有一个描述图表的字符串:

graph name{
1--2;
}

以某种方式将其传递给查看器程序?

【问题讨论】:

  • 仅限命令行:dot -Tpng mygraph.dot -o mygraph.png

标签: python dot


【解决方案1】:

也许不完全是您打算做的事情,但您可以使用 pygraphviz 并将您的图表打印到文件中:

import pygraphviz as pgv
G=pgv.AGraph()
G.add_edge('1','2')
G.layout()
G.draw('file.png')

(或者您可以只使用 G = pgv.AGraph('file.dot') 导入一个 .dot 文件)

然后您可以随时使用 Image 或 openCV 来加载您的文件并将其显示在查看器中。

我不认为 pygraphviz 允许你直接这样做。

编辑:

我最近发现了另一种方法并记住了您的问题:NetworkX 让您这样做。方法如下:

或者直接使用 NetworkX 创建您的图表。 NetworkX 的大部分命令与 pygraphviz 中的命令相同,这很方便。然后只需发送到 matplotlib 并在那里绘制:

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edge('1','2')
nx.draw(G)
plt.show()

或者您可以通过 pygraphviz 导入您的 .dot 文件,然后将其转换为 networkx 对象:

import pygraphviz as pgv
import networkx as nx
import matplotlib.pyplot as plt
Gtmp = pgv.AGraph('file.dot')
G = nx.Graph(Gtmp)
nx.draw(G)
plt.show()

所以现在你有更多选择:)

猜你喜欢
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多