3
8

More than 3 years have passed since last update.

matplotlobで数式と日本語を使えるようにする!

Last updated at Posted at 2021-02-11

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を削除する。

以上の工程を踏むことで普段通りのコードで日本語が表示される。

3
8
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
3
8