Graphviz.源代码不渲染在Jupyter笔记本



使用scikit-learn方便的export_graphviz函数导出。dot文件后

我正在尝试使用Graphviz渲染点文件到我的Jupyter Notebook中的单元格:

import graphviz
from IPython.display import display
with open("tree_1.dot") as f:
    dot_graph = f.read()
display(graphviz.Source(dot_graph))

但是out[]只是一个空单元格。

我使用graphviz 0.5 (pip然后conda安装),ippython 5.1和Python 3.5点文件看起来是正确的,下面是第一个字符:

digraph Tree {nnode [shape=box, style="filled", color=

python显示似乎可以用于其他对象,包括Matplotlib图和Pandas数据框架。

我应该注意到Graphviz网站上的例子也不起作用

这是可能的,因为你发布了这个,改变了,所以你可能想要更新你的库,如果这是可能的。

我在这里使用的相关版本是:

Python 2.7.10

IPython 5.1.0

graphviz是0.7.1

如果您有一个格式良好的.dot文件,您可以将其显示到jupyter out[。]单元格:

import graphviz
with open("tree_1.dot") as f:
    dot_graph = f.read()
# remove the display(...)
graphviz.Source(dot_graph)

此解决方案允许您直接插入DOT文本(无需先将其保存到文件中)

# convert a DOT source into graph directly
import graphviz 
from IPython.display import display
    
source= '''
digraph sample {
A[label="AL"]
B[label="BL"]
C[label="CL"]
A->B
B->C 
B->D
D->C
C->A
}
'''
print (source)
gvz=graphviz.Source(source)
# produce PDF
#gvz.view()
print (gvz.source)
display(gvz)

尝试使用pydotplus

import pydotplus
(1.1)从 外部导入。dot
pydot_graph = pydotplus.graph_from_dot_file("clf.dot")

或(1.2)直接使用.export_graphviz输出

dt = tree.DecisionTreeClassifier()
dt = clf.fit(x,y)
dt_graphviz = tree.export_graphviz(dt, out_file = None)
pydot_graph = pydotplus.graph_from_dot_data(dt_graphviz)

(2.),然后使用

显示pyplot图
from IPython.display import Image
Image(pydot_graph.create_png())

尝试重新安装graphviz

conda remove graphviz
conda install python-graphviz
graphviz.Source(dot_graph).view()
graphviz.Source(dot_graph).view()

相关内容

  • 没有找到相关文章

最新更新