Graphviz不能在Colab上输出图形

3

我正在Google Colab上尝试Graphviz的示例。

这是我在尝试的代码:

from graphviz import Graph

g = Graph('G', filename='process.gv', engine='sfdp')

g.edge('run', 'intr')
g.edge('intr', 'runbl')
g.edge('runbl', 'run')
g.edge('run', 'kernel')
g.edge('kernel', 'zombie')
g.edge('kernel', 'sleep')
g.edge('kernel', 'runmem')
g.edge('sleep', 'swap')
g.edge('swap', 'runswap')
g.edge('runswap', 'new')
g.edge('runswap', 'runmem')
g.edge('new', 'runmem')
g.edge('sleep', 'runmem')

g.view()

来自https://graphviz.readthedocs.io/en/stable/examples.html#hello-py

我期望得到一个节点和边缘图作为输出。但是,我只得到了'hello.gv.pdf',而且它并没有绘制任何图形。

我该如何解决这个问题?我尝试在Colab上重新安装Graphviz,但仍然无法工作。

谢谢你

1个回答

4
添加这个:
with open("process.gv") as f:
    dot_graph = f.read()
graphviz.Source(dot_graph)

然后您将能够在Google Colab中观察到。

result

或者使用 g 代替 g.view()


1
感谢您的友善回答!很抱歉回复晚了。 - 19K
1
graphviz.Source(g) 可以实现此功能。使用 g 会产生不同的输出,虽然是相同的图形但形状不同。 - ctrl-alt-delor
@ctrl-alt-delor:我也有同样的疑问,但今天我得到了答案。看看这个文档:https://nbviewer.jupyter.org/github/xflr6/graphviz/blob/master/examples/graphviz-engines.ipynb - Pygirl
问题已提出:https://github.com/xflr6/graphviz/issues/134 - Pygirl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接