LoginSignup
5
1

More than 5 years have passed since last update.

Pipenv で起きる Matplotlib まわりのエラー

Last updated at Posted at 2018-06-02

※ 取り急ぎ、ざっくり書いたので今後詳しく更新します。

環境

  • OS: macOS High Sierra v.10.13.4
  • pyenv: 1.2.2
  • pipenv: 11.10.4

matplotlib が使用できない

Mac 上の Pipenv で matplotlib を使用すると、"RuntimeError: Python is not installed as a framework" というエラーが出てしまうことがあります。これは Pipenv だけの問題ではありません。

Mac では、matplotlib のバックエンドには Cocoa が利用されています。しかし、 virtualenv 環境下では、matplotlib がそのバックエンドを参照できず、このことが原因となってランタイムエラーが出てしまっています。そのため、バックエンドとして TkAgg を指定してあげることで、この問題は解消されます。

matplotlib の設定は、matplotlibrc に記述できます。matplotlibrc の場所は次のように matplotlib のメソッドから確認することができます。

import matplotlib
matplotlib.matplotlib_fname()

確認できたら、その設定ファイルに下記の記述を追加して保存しましょう。

backend: TkAgg

これで、バックエンドを切り替えることができます。

日本語が豆腐になってしまう

matplotlib が利用するデフォルトのフォントは、DejaVu Serif です。しかし、このフォントには和文フォントが含まれていません。そのため、日本語は豆腐になってしまいます。 もし、図に日本語を利用する場合には使用フォントを切り替えてあげる必要があります。

まずは、https://ipafont.ipa.go.jp から IPAx フォントのゴシック体をダウンロードしてきましょう。明朝体を使いたい人は、読み替えていただければ幸いです。ダウンロードした ZIP ファイルを解凍すると、ipaexg.ttf が含まれています。これを ~/.pyenv/versions/anaconda3-5.1.0/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf に入れます。もちろん、ディレクトリはお使いの Python バージョンなど環境に合わせてください。

次に、matplotlibrc に下記の行を追加します。

font.family: IPAexGothic

このあと、matplotlibrc と同じディレクトリにある fontList.json を削除すると、うまく IPAexGothic が適用されます。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1