matplotlibでタイトルやラベルに数式を挿入、日本語を表示する手法を一つずつ紹介する。
環境
- macOS BigSur 11.1
- Python 3.8.6
- matplotlib 3.3.3
数式
数式はLaTeXコマンドを用いて以下のように書くことで挿入できる。LaTeXコマンドがわからない方はこちらを参考にすると良い。
r'$LaTeXコマンド$' #表示したい数式をLaTeXで書く。
例えばx軸のラベルを$\Gamma(x)$にしたい場合は
plt.xlabel(r'$\Gamma(x)$')
のように書く。
日本語化
matplotlibで使用するフォントを変更し、日本語も表示可能にする。フォントは無料で使用できるIPAexゴシックに変更する。
matplotlibのインストール先の確認
matplotlibのインストール先を確認するために以下のコマンドを叩く。
% pip show matplotlib
Name: matplotlib
Version: 3.3.3
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: matplotlib-users@python.org
License: PSF
Location: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages
Requires: cycler, python-dateutil, pyparsing, pillow, kiwisolver, numpy
Required-by:
Locationに書かれている場所がインストール先となっている。
IPAexゴシックをmatplotlibで使用できるフォントに追加
matplotlibで使用されるフォントのttfが保存されているフォルダインストール先/matplotlib/mpl-data/fonts/ttf
にIPAexゴシックフォントのttfを追加する。IPAexゴシックのttfファイルはここで入手することができる。
デフォルトフォントの変更
matplotlibのデフォルトフォントはインストール先/matplotlib/mpl-data/matplotlibrc
の250行目にある
#font.family: sans-serif
で設定されている(sans-serifはデフォルトフォント)。
これを
#font.family: IPAexGothic
に変更することでデフォルトフォントを変更する。
デフォルトフォントを変更せず、その瞬間のみ使用するフォントを変えたい方はコードに
plt.rcParams["font.family"] = "IPAexGothic"
と追加するとよい。
キャッシュ削除
これまでの方法で表示できなかった場合
import matplotlib
matplotlib.get_cachedir()
でキャッシュファイルがあるフォルダを表示できるのでフォルダ内のfontlist-v330.json
を削除する。
以上の工程を踏むことで普段通りのコードで日本語が表示される。