4

As I can plot curves with matplotlib in python, I wonder if there are any ways to show .dot graphs somehow. I have a string describing a graph:

graph name{
1--2;
}

Somehow pass it to a viewer program?

4

1 回答 1

8

也许不完全是您打算做的,但您可以使用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()

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

于 2013-07-30T14:53:30.393 回答