Issue
I'm trying to display a decision tree in Jupyter Notebook and I keep receiving the message:
CalledProcessError: Command '['dot.bat', '-Tsvg']' returned non-zero exit status 1
I'm using the following code:
from sklearn.datasets import load_iris
from sklearn import tree
import graphviz
from IPython.display import SVG
iris = load_iris()
clf = tree.DecisionTreeClassifier()
fitted_clf = clf.fit(iris.data, iris.target)
graph = graphviz.Source(tree.export_graphviz(fitted_clf,
feature_names = iris.feature_names,
class_names = iris.target_names,
filled = True, rounded = True,
special_characters = True))
SVG(graph.pipe(format='svg'))
The Exception is raised in the last line when I try to use 'pipe'. I also tried:
graph.format = 'png'
graph.render('example')
instead of pipe but i keep on raising a similar exception:
CalledProcessError: Command '['dot.bat', '-Tpng', '-O', 'example']' returned non-zero exit status 1
Any idea of what is causing that behaviour? and how can I fix it?
(I'm using Python 3.5.2, sklearn 0.17.1, graphviz 0.8.2 and IPython 6.4.0)
Solution
Installing graphviz xorg-libxrender xorg-libxpm from conda-forge repo, and the python bindings from pip usually solves this for me.
conda install -c conda-forge graphviz xorg-libxrender xorg-libxpm
pip install graphviz
Do not forget to uninstall the previously installed packages first.
Edit: please try conda install python-graphviz
instead of pip install graphviz
first, as proposed in the comment below. Mixing conda and pip solved it for me multiple times, but should only be used if pure pip or conda installs fails.
Answered By - Paul-Armand Verhaegen
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.