Pythonで美しいグラフを書く! MatplotlibでFileNotFoundError対策

Pythonで美しいグラフを書く! MatplotlibでFileNotFoundError対策

Pythonで美しいグラフを書く! その1 :Matplotlibで散布図
で一部の環境で次のようなエラーが発生していたので解決方法をまとめました。

Pythonで美しいグラフを書く!Matplotlibの散布図を詳しく解説!

ターミナルからも解決する方法はありますが、
今回はマウスの操作で解消する方法を紹介します。

症状

サンプルデータが見つからない、
FileNotFoundError: [Errno 2] No such file or directory:
のエラーが出る。

Matplotlib.cbookにはMatplotlibにプレインストールされているサンプルデータを呼び出すときに使うのですが、

と google.npzを呼び出したところ、

FileNotFoundError: [Errno 2] No such file or directory: ‘/Users/USER /.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/matplotlib/mpl-data/sample_data/goog.npz’

というエラーが出ました。

FileNotFoundError: [Errno 2] No such file or directory:

というエラーなので、
と/Users/USER/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/matplotlib/mpl-data/sample_data/goog.npz’
が見つからないよ!
というエラーです。

結論から先に言うとAnacondaでmatplotlibを入れたとき、sample_dataのフォルダがないものがあり、with cbook.get_sample_data(‘goog.npz’) as datafile:で探していても発見できなかったようです。

Macでの原因の確認方法

今回のエラーの原因を発見した方法をまとめています。
速く解決したい場合はこの節は読み飛ばしたください。

はじめに、goog.npzといファイルが上のところにあるかどうか探してみました。

.pyenvファイルは隠しファイルなので、MacではFinder上でCommand+Shift+.のボタンを押すと、隠しファイルがFinder上に出現します。

.pyenv > versions > anaconda3-5.3.1 > lib > python3.7 > site-packages > matplotlib > mpl-dataと順番にクリックしていきます。

すると、mpl-dataの中にはsample_dataがありませんでした。

今回のエラーは、
with cbook.get_sample_data(‘goog.npz’) as datafile:
のコマンドで、sample_dataフォルダ内にあるgoog.npzを読み込もうとしましたが、
そもそもsample_dataというフォルダがなかったようです。

英語の内容になりますが、同様のエラーが存在しているようです。

https://stackoverflow.com/questions/50117712/missing-sample-data-from-anaconda-matplotlib-package

解決方法

あまりエレガントな方法ではないですが、簡単な解決方法があります。

Matplotlibのコードは全てGit-Hub上で公開されています。
ここから、sample_dataをコピーして、mpl_dataのフォルダにペーストします。
では具体的なやり方を説明します。

https://github.com/matplotlib/matplotlib

にアクセスすると次の画面が出てきます。

この画面の右下に clone or downloadのボタンがありますので、ここをクリックして、
Download zipを選択します。
するとmatplotlib masterという名前のディレクトリがダウンロードされます。

このディレクトリから
lib > matplotlib > mpl-dataとディレクトリをクリックしていきます。

sample_dataというフォルダがありました。
これを先ほど原因調査で開いたmpl-dataというディレクトリにコピーしてください。
*ダウンロードしたディレクトリではないよ!

これで解決するはずです。

解決しました。

どのような環境で同様のエラーがあるかは把握できていませんが、
エラーが対処できてよかったです。
どのようなエラーも必ず原因があるので、
エラーのコードを確認しながら気長に解消していきましょう。

エラーの解消は大変ですが、トライしていくことでプログラムのスキルがどんどん向上していきます。

Pythonカテゴリの最新記事