因为我可以在python中使用matplotlib绘制曲线,所以我想知道是否有任何方式可以显示.dot图。我有一个描述图形的字符串:
graph name{
1--2;
}
Run Code Online (Sandbox Code Playgroud)
以某种方式将其传递给查看器程序?
也许不完全是您要执行的操作,但是您可以使用pygraphviz并将图形打印到文件中:
import pygraphviz as pgv
G=pgv.AGraph()
G.add_edge('1','2')
G.layout()
G.draw('file.png')
Run Code Online (Sandbox Code Playgroud)
(或者您可以使用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()
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过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()
Run Code Online (Sandbox Code Playgroud)
所以现在您有了更多选择:)