Macでmatplotlibやseabornのグラフをプロットするときにデフォルトで日本語表示する方法
matplotlibやseabornを日本語化する手順をまとめると、
- matplotlibrcを~/.matplotlib直下にコピーする。
- matplotlibrcと同じ階層にあるfontsディレクトリのttf直下に、ipaexg.ttfをコピーする。
- matplotlibrcにipaexg.ttfを使うよう追記する。
- site-package/seaborn/rcmod.pyのsans=-serifを使う記述をipaexgを使うように修正する。
実際にやってみる
matplotlibを日本語化する方法
具体的にはこんな感じのコードになるはず。
まず以下のpythonコードを走らせてmatplotlibrcの場所を確認。
import matplotlib
matplotlib.matplotlib_fname()
> /Users/<username>/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
このファイルを、~/.matplotlib直下にコピーする。
cp /Users/<username>/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc ~/.matplotlib
コピーしたあと、もう一度以下のコードを走らせると、
import matplotlib
matplotlib.matplotlib_fname()
'/Users/<username>/.matplotlib/matplotlibrc'
参照先が変わっている。
そして、~/.matplotlib/matplotlibrcをエディタで開いて、
font.family : IPAexGothic
の1行を追加。
matplotlib.matplotlib_fname()で調べたディレクトリにipaexg.ttfをコピーする。
cp /Users/<username>/Downloads/IPAexfont00401/ipaexg.ttf /Users/<username>/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
これでmatplotlibの日本語化は完了。
seabornを日本語表示する方法
site-packages/seaborn/rcmod.py
(自分の場合は/Users/<username>/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/seaborn/rcmod.pyにあった。anacondaで管理している場合は/Users/<username>/.pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/seaborn/rcmod.py)に記述されてある、
def set(context="notebook", style="darkgrid", palette="deep",
font="sans-serif", font_scale=1, color_codes=True, rc=None):
の部分を見つける。自分の場合は92、93行目にあった。font='sans-serif'をfont='IPAexGothic'に変更。
完了。
jupyter notebookやjupyter labのdarkモードでtitleやlabelが見えるようにする方法
ちなみに同じ行にあるcolor_codes=Trueを、color_codes="white"に変えると、jupyter notebookやjupyter labでdarkモードにしていてもtitleやlabelが見えるようになるのでおすすめ。