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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Q&A

解決済

1回答

3104閲覧

Pycharmでmatplotlibが使えない

KWCOKuhara

総合スコア11

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

0グッド

0クリップ

投稿2018/10/01 13:40

matplotlibをインポートしたはずなのに使えません。

python3.x

1#該当のコード 2import matplotlib.pyplot as plt 3import numpy as np 4 5x = np.arange(0,10,0.1) 6print(x) 7 8y = 2 * x + 1 9print(y) 10 11plt.plot(x,y) 12plt.show() 13

error

1/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/bin/python /Users/MYNAMEo/math_training/liner_function 2Traceback (most recent call last): 3 File "/Users/MYNAME/math_training/liner_function", line 3, in <module> 4 import matplotlib.pyplot as plt 5 File "/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2371, in <module> 6 switch_backend(rcParams["backend"]) 7 File "/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/lib/python3.6/site-packages/matplotlib/pyplot.py", line 207, in switch_backend 8 backend_mod = importlib.import_module(backend_name) 9 File "/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/lib/python3.6/importlib/__init__.py", line 126, in import_module 10 return _bootstrap._gcd_import(name[level:], package, level) 11 File "/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/lib/python3.6/site-packages/matplotlib/backends/backend_macosx.py", line 14, in <module> 12 from matplotlib.backends import _macosx 13ImportError: 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. 14

試してみたこと

似たような事例があったので調べてみたのですが、私の場合ImportErrorなのに対してこちらではRuntimeErrorだったり少々異なるようなので質問しました。
なんとなくパス(よく理解できていない。)の問題?な気がしていますが、下手にいじるのが怖いのでどなたかご教授くださると嬉しいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

自分は Mac を持っていないのでわかりませんが、こちら の記事が参考になるのではないでしょうか?

また質問欄にかかれている Stack Overflow の記事にも Backend を変えるという同様の解決方法が書かれています。

バックエンドとは

実際に図をレンダリングして対象に出力する部分です。
matplotlib では作成した図をファイルや GUI ウィンドウに出力できます。
GUI ウィンドウでは、TkAgg (Thinker) や qt5agg (Qt) など選択できます。

バックエンドを変更する方法

次のどちらかでバックエンドを変更してみてください。

a. matplotlib の設定ファイルに記述し、デフォルトのバックエンドを変更する。

~/.matplotlib/matplotlibrc

backend : TkAgg

b. 動的にバックエンドを変更する。

import matplotlib matplotlib.use('TkAgg') # import matplotlib.pyplot as plt の前に実行してください。

設定ファイルを使う場合の方法

初期状態では、<モジュールのパス>/mpl-data/matplotlibrc から読み込まれているので、これを ~/.config/matplotlib/matplotlibrc にコピーする必要があります。

設定コピー用スクリプト

python

1import os 2import shutil 3 4import matplotlib as mpl 5 6mpl_dirpath = os.path.dirname(mpl.__file__) 7# デフォルトの設定ファイルのパス 8default_config_path = os.path.join(mpl_dirpath, 'mpl-data', 'matplotlibrc') 9# カスタム設定ファイルのパス 10custom_config_path = os.path.join(mpl.get_configdir(), 'matplotlibrc') 11 12shutil.copyfile(default_config_path, custom_config_path)

投稿2018/10/01 16:44

編集2018/10/02 16:36
tiitoi

総合スコア21956

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

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

KWCOKuhara

2018/10/02 16:29

ありがとうございます!(b)の動的にバックエンドを変更する で作動しました。 ちなみに参考までに伺いたいのですが、(a)は、 matplotlib の次に matplotlibrc というディレクトリを作成し、その中に〜.py ファイルを作成し、 backend : TkAgg と記述して保存する。。。 という理解でしょうか。。。?できなかったので多分僕のやり方が間違っていると思うんですが backend : TkAgg とどこに記述するのかいまいちよくわかりません。長文失礼しました。
tiitoi

2018/10/02 16:38

デフォルトの設定ファイルがモジュールがあるディレクトリ配下にあり、それを ~/.config/matplotlib/matplotlibrc にコピーしてきて、backend : TkAgg と変更するという流れになります。 回答を追記しました。
KWCOKuhara

2018/10/03 07:25

ありがとうございます! 色々勘違いしてましたが完全に理解できました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問