Graphviz 未在 Colab 上打印输出图表

问题描述 投票:0回答:2

我正在 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,但仍然不起作用

谢谢你

python graphviz google-colaboratory pygraphviz
2个回答
4
投票

添加此:

with open("process.gv") as f:
    dot_graph = f.read()
graphviz.Source(dot_graph)

然后你就可以在google colab中观察了。

result

或者不用

g.view()
,只需写
g


0
投票

可以直接渲染而不是通过中间文件,请使用IPython.display

模块。

import graphviz from IPython.display import display g = graphviz.Digraph('G', filename='simple_graph.gv', engine='sfdp') g.edge('a', 'b') g.edge('b', 'c') g.edge('c', 'a') display(g)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.