因为我可以在 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/