#はじめに
matplotlibを使った描画において、設定ファイルの変更等をしていないとエラーが出ることがあるので、そのことについて説明します。
#開発環境
OS:macOS Mojave(10.14.4)
Python 3.7.2
まずはじめに対話型のpythonを開きます。
$ python
適当にx軸price、y軸countのサンプルグラフを作ります。
>>> import matplotlib.pyplot as plt
>>> price = [80, 100, 150, 250, 400]
>>> count = [17, 42, 53, 36, 13]
>>> plt.plot(price,count)
>>> plt.show()
matplotlibをimportしたタイミングで以下のエラーが出ました。
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user/.pyenv/versions/3.7.2/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2372, in <module>
switch_backend(rcParams["backend"])
File "/Users/user/.pyenv/versions/3.7.2/lib/python3.7/site-packages/matplotlib/pyplot.py", line 207, in switch_backend
backend_mod = importlib.import_module(backend_name)
File "/Users/user/.pyenv/versions/3.7.2/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/Users/user/.pyenv/versions/3.7.2/lib/python3.7/site-packages/matplotlib/backends/backend_macosx.py", line 14, in <module>
from matplotlib.backends import _macosx
ImportError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.
これはmatplotlibrcという設定ファイルの記述の
backend : macosx
という箇所を以下のように変更すると解決するみたいです。
backend : Tkagg
matplotlibrcの場所は、以下のコマンドで確認できます。
$ python -c "import matplotlib;print(matplotlib.matplotlib_fname())"
/Users/user/.pyenv/versions/3.7.2/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
ファイルの場所を確認できたら、Finderでファイルまでたどり着き上記のように変更してあげましょう。
無事サンプルグラフ作成のコマンドが通り、グラフが作成できたかと思います。
#参考記事
pyenvとvirtualenvで環境構築した時にmatplotlib.pyplotが使えなかった時の対処法