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

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

ただいまの
回答率

90.51%

  • Python 3.x

    9820questions

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

  • Matplotlib

    454questions

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

Pycharmでmatplotlibが使えない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,650

KWCOKuhara

score 5

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

#該当のコード
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,10,0.1)
print(x)

y = 2 * x + 1
print(y)

plt.plot(x,y)
plt.show()
/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/bin/python /Users/MYNAMEo/math_training/liner_function
Traceback (most recent call last):
  File "/Users/MYNAME/math_training/liner_function", line 3, in <module>
    import matplotlib.pyplot as plt
  File "/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2371, in <module>
    switch_backend(rcParams["backend"])
  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
    backend_mod = importlib.import_module(backend_name)
  File "/Users/MYNAME/.pyenv/versions/anaconda3-5.1.0/envs/Pycharm_test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  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>
    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.

 試してみたこと

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

自分は 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 にコピーする必要があります。

設定コピー用スクリプト

import os
import shutil

import matplotlib as mpl

mpl_dirpath = os.path.dirname(mpl.__file__)
# デフォルトの設定ファイルのパス
default_config_path = os.path.join(mpl_dirpath, 'mpl-data', 'matplotlibrc')
# カスタム設定ファイルのパス
custom_config_path = os.path.join(mpl.get_configdir(), 'matplotlibrc')

shutil.copyfile(default_config_path, custom_config_path)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/03 01:29

    ありがとうございます!(b)の動的にバックエンドを変更する で作動しました。
    ちなみに参考までに伺いたいのですが、(a)は、

    matplotlib の次に matplotlibrc というディレクトリを作成し、その中に〜.py ファイルを作成し、
    backend : TkAgg と記述して保存する。。。

    という理解でしょうか。。。?できなかったので多分僕のやり方が間違っていると思うんですが backend : TkAgg とどこに記述するのかいまいちよくわかりません。長文失礼しました。

    キャンセル

  • 2018/10/03 01:38

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

    キャンセル

  • 2018/10/03 16:25

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

    キャンセル

同じタグがついた質問を見る

  • Python 3.x

    9820questions

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

  • Matplotlib

    454questions

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