ちょっと検索すると類似の情報山ほど出てきてアレなんだけど、その割に書いてあることがバラバラで中々解決しなかったので再度調べる手間を考えてメモっておく。
フォントをインストールする
IPAexとかNotoフォントとかをインストールする想定。
matplotlibのキャッシュを消す
ここが分からなくて結構時間をロスした。フォントの検索にキャッシュ使ってるらしい。
キャッシュが入ってるディレクトリは大体~/.matplotlib
とかだけど、次のように確認できる(cf. python 2.7 - Unable to find font cache of matplotlib on a mac - Stack Overflow)。
import matplotlib
print(matplotlib.get_cachedir())
消すファイルは以下の3つだった。情報源によってこれが2つだったり1つだったりしたので、環境によるのかもしれない。
- fontList.cache
- fontList.py3k.cache
- fontList.json
使用できるフォントの名前を調べる
import matplotlib.font_manager as fm
fonts = fm.findSystemFonts()
print([[str(font), fm.FontProperties(fname=font).get_name()] for font in fonts[:10]])
cf. python matplotlib 内で日本語を利用する(使用できるフォントを探す) - ゆるふわめも
フォントの設定をする
設定ファイルに記述する方法もあるらしいけど、忘れた頃にまた困りそうで嫌なのでスクリプト中で指定する。以下は上述のIPAexゴシックの例。Noto Sans CJK JPならそのまんまNoto Sans CJK JP
。
import matplotlib
matplotlib.rc('font', family='IPAexGothic')