python - 从 python 打开 .dot 格式的图形

标签 python dot

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

graph name{
1--2;
}

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

最佳答案

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

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

关于python - 从 python 打开 .dot 格式的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17947027/

相关文章:

python - 两个 uint8 数组的快速绝对差

graph - 如何使用 Dot 和 Graphviz 循环布局完整的图形?

graphviz - 用点强制正交(垂直或水平)边缘

python - 如何在python中不使用[]将列表写入文件

graphviz - 将子图簇形状更改为圆角矩形

visualization - Graphviz:左右子图,左右内部子图

graphviz - 如何在 Graphviz/dot/neato 中创建命名边 "types"?

Python 错误 'ascii' 编解码器无法解码位置 11 : ordinal not in range(128)"中的字节 0x90

python - 在 Flask 应用程序中看不到 Favicon

python - 当有东西要获取/拉取时与没有东西时从 gitPython 返回的 FetchInfo 对象有什么区别?