我想用graphviz来实现图形化。我想使用graphviz的源代码:
def display(self, verbose=False):
'''
Prints the QMDD as a dot graph.
'''
filename = '.tmp.dot'
self.save_as_dot(filename, verbose)
s = Source.from_file(filename)
s.view()
有几个很好的教程,用于为graphviz生成.gv文件,然后使用render命令创建接近图。但是,我只想简单地获取一个预生成的.gv文件,并调用graphviz并生成图像。我在render命令中注意到的一个问题是,它执行保存.gv文件的操作,从而删除用户指定的文件。
所以我的问题是:
我如何调用graphviz从预先生成的.gv文件生成图形,而不是使用graphviz命令创建.gv文件?
示例:
现有.gv文件G.gv
digraph G {
A -> B
B -> C
C -> A
B -> D
}
Sudo Python代码:
import graphviz
gra
我使用了带有overlap = false选项的graphviz neato 2.26,得到了我想要的图形。但现在我升级到了2.28,图表完全乱了套。
参考资料上写着:If Prism is not available, or the version of Graphviz is earlier than 2.28, "overlap=false" uses a Voronoi-based technique.
所以我的问题是:我还能在2.28中使用基于Voronoi的技术吗?(我不能降级到2.26)。
谢谢。
在绘图之前,我尝试过手动更改networkx中图形的位置,但它似乎没有任何效果。
这里有一个mwe,我希望这两个数字是不同的,更准确地说,因为第二个数字水平地更宽,因此在节点之间有更多的空间,但是即使节点标签似乎也有相同的相对大小:
import matplotlib.pyplot as plt
import networkx as nx
import pydot
from networkx.drawing.nx_pydot import graphviz_layout
T = nx.balanced_tree(2, 5)
T = nx.relabel_nodes(T, lambda x: