【Python】matplotlibを日本語対応させよう


概要

matplotlibは標準フォントでは日本語に対応していないので・・・


こんな感じで文字化けしてしまいます。
これを

こうなるようにしていきましょう。

環境

# OS version
ProductName:    Mac OS X
ProductVersion: 10.15.6
BuildVersion:   19G2021

# Python version
Python 3.8.5
# matplotlib version
matplotlib==3.3.0

手順

1. フォントのダウンロード

まずお好みでフォントをダウンロードします。
今回はIPAフォントを使用します。

2. ダウンロードしたttfファイルをフォントフォルダへ移動する

matprotlibのフォントフォルダにttfファイルを移動させます。
パスは環境にもよりますが以下を参考に。

/usr/local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf

lib(ライブラリ)フォルダが見つからない場合はFinderの移動タブからライブラリを選択、あるいは表示タブの表示オプションから常に表示するようにできます。

こんなフォルダにたどり着くはず。

3. matplotlibrcを編集する

先程のttfフォルダの2つ上位のフォルダ(mpl-dataフォルダ)にあるmatplotlibrcを開きます。

"#font.family sans-serif" という記述を探して・・・

下の行に"font.family IPAexGothic"と追記します。

これで設定は完了です!

フォントが正常に表示されることを確認してください。

「そんなフォントないよ!」というエラーが起こる場合

以下のエラーが起こる場合

UserWarning: findfont: Font family ['IPAexGothic'] not found. Falling back to DejaVu Sans.

フォントのキャッシュが残っている可能性が考えられます。

/Users/ユーザー名/.matplotlibフォルダ内にある"fontlist***.json"を消して、
JupyterNotebookを再起動させてください。
.matplotlibフォルダは隠しフォルダなので表示されない場合は"Shift+Cmd+.(ドット)"を試してみてください。

おわりに

Anaconda環境での日本語化方法はググれば出てくるのですが、純粋なPython環境での例が出てこなかったので自分の経験を基にまとめてみました。
お役に立てていれば幸いです。