質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3428閲覧

pydotのエラー(画像が表示されない)

essa

総合スコア81

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/09/02 13:25

編集2019/09/03 12:38

20190903追記

イメージ説明

左がuserのパスで右はシステムのパスです。

お世話になります。
標記について教えてほしいことがあります。

Python

1import numpy as np 2import pandas as pd 3from sklearn import tree 4from sklearn.tree import export_graphviz 5from IPython.display import Image 6from sklearn.externals.six import StringIO 7import pydot 8 9df = pd.read_csv("hogehoge.csv") 10 11features = list(df.columns[:5]) 12y = df["hogehoge"] 13X = df[features] 14 15clf = tree.DecisionTreeClassifier() 16clf = clf.fit(X,y) 17 18 19dot_data = StringIO() 20tree.export_graphviz( 21 clf, 22 out_file=dot_data, 23 feature_names = features) 24 25(graph,) = pydot.graph_from_dot_data(dot_data.getvalue()) 26Image(graph.create_png())

と実行したところ、下記のようなエラーが発生しました。

--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) ~\Anaconda\lib\site-packages\pydot.py in create(self, prog, format, encoding) 1914 arguments=arguments, -> 1915 working_dir=tmp_dir, 1916 ) ~\Anaconda\lib\site-packages\pydot.py in call_graphviz(program, arguments, working_dir, **kwargs) 135 stdout=subprocess.PIPE, --> 136 **kwargs 137 ) ~\Anaconda\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors, text) 755 errread, errwrite, --> 756 restore_signals, start_new_session) 757 except: ~\Anaconda\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session) 1154 os.fspath(cwd) if cwd is not None else None, -> 1155 startupinfo) 1156 finally: FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。 During handling of the above exception, another exception occurred: FileNotFoundError Traceback (most recent call last) <ipython-input-29-2b79d1a0aeb8> in <module>() 11 (graph,) = pydot.graph_from_dot_data(dot_data.getvalue()) 12 #Image(graph.create_png()) ---> 13 print(graph.create_png()) ~\Anaconda\lib\site-packages\pydot.py in new_method(f, prog, encoding) 1721 """Refer to docstring of method `create`.""" 1722 return self.create( -> 1723 format=f, prog=prog, encoding=encoding) 1724 name = 'create_{fmt}'.format(fmt=frmt) 1725 self.__setattr__(name, new_method) ~\Anaconda\lib\site-packages\pydot.py in create(self, prog, format, encoding) 1920 args[1] = '"{prog}" not found in path.'.format( 1921 prog=prog) -> 1922 raise OSError(*args) 1923 else: 1924 raise FileNotFoundError: [WinError 2] "dot" not found in path.

dotがパスにないというエラーが発生しております。
しかし、下記を実行してみたところ、実行できています。
イメージ説明

どのように対応すればよいでしょうか?

ご存知の方がいましたら、教えて頂けないでしょうか?

どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2019/09/02 14:08

「hogehoge.csv」の内容も掲載してもらえませんか? 実行環境についても追記願います。
essa

2019/09/02 14:22

hogehoge.csvの中身は https://www.kaggle.com/rhuebner/human-resources-data-set のHRDataset_v9.csvになります。 y = df["hogehoge"]としているのはMarriedIDを示しています。 ※ややこしくなると思ったため、hogehogeとしています。 実行環境はPython3.6です。
meg_

2019/09/02 14:22

OSは何ですか?
essa

2019/09/02 14:23

OSはWindows10です。
meg_

2019/09/02 15:44 編集

Windows8で試したところ、表示できました。(AnacondaでPython3.7で実行しました) ※features = list(df.columns[:5])でエラーが出ましたので、features = list(df.columns[1:5])に変更しました。
essa

2019/09/03 13:02

graphviz はインストール済みでしょうか?
guest

回答2

0

自己解決

解決しました。

pydotではなく、pydotplusを入れてみたところ、画像ができました。

投稿2019/09/03 15:00

essa

総合スコア81

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

このエラーは Graphviz に含まれる dot というアプリケーションが見つからないことを意味します。
numpy.dot は関係ありません。

cmd

1FileNotFoundError: [WinError 2] "dot" not found in path.

Python で graphviz を使ったライブラリとして、pydot、pygraphviz などがありますが、いずれも graphviz 本体を別途インストールする必要があります。

以下の手順でインストール及び PATH を通す作業を行ってください。

    1. 公式サイト より graphviz をインストールする。
    1. dot.exe がある場所を PATH 環境変数に登録する。

dot.exe がある場所は環境によって違う可能性がありますが、自分の場合、以下にあります。

C:\Program Files (x86)\Graphviz2.38\bin\dot.exe

この場合、C:\Program Files (x86)\Graphviz2.38\bin を PATH 環境変数に追加します。

    1. PC を再起動する。

投稿2019/09/03 04:33

tiitoi

総合スコア21954

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

essa

2019/09/03 12:39

PATH環境変数の登録があっているか確認していただけないでしょうか? 追記しました。
essa

2019/09/03 13:25

ちなみに、コマンドプロンプトより、「dot」と打つと、なにかしらのアプリケーションが起動します。 そのため、環境変数の登録はできているかと思われます。
essa

2019/09/03 13:43

五月雨で申し訳有りません notebook上で !which dot とうつと、 /cygdrive/c/Program Files (x86)/Graphviz2.38/bin/dot と表示されます
tiitoi

2019/09/03 15:54

すいません。今コメントを確認しました。 解決したようでよかったです。
essa

2019/09/04 12:41

いえいえ。 毎回回答していただき、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問