面倒なキャッシュ削除などを手作業でせずにmatplotlibの日本語フォントをインストールする
概要
matplotlibの日本語フォントをインストールしたい時に、以下のような手作業の方法がググったときに結構出てきたが、環境によってフォルダ構成が異なったりするので、それっぽくやってみても上手くいかなかった。
こういうファイルを手作業で移動したり消したりをなしに日本語のフォントをインストールできる方法を調べて実行したところ上手くいったのでまとめていく。
matplotlibの文字化け問題でハマった時のメモ
【Python 3.6】matplotlibを日本語化する
ちなみに、上記の記事でも同様の環境であればできますし、上記のように解決方法を公開していただけることに関しては非常にありがたいと考えていますので、これらの記事への批判がしたい訳ではないのであしからず…。
方法1: ターミナルからIPAフォントをインストールして、(おすすめ)
ターミナルで以下のコマンドでIPAフォントをインストールする。
# Ubuntu
sudo apt install fonts-ipaexfont
#CentOS
sudo yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
matplotlibを利用するpython環境を起動して以下を実行するとmatplotlibrcという設定ファイルのパスが手に入る
import matplotlib as mpl
print(mpl.matplotlib_fname())
# 以下、出力結果例
/home/user/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
あとは手に入れたパスにある設定ファイルをテキストエディタ(ここではvim)で開きます。
vim /home/user/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
テキストエディタで開いたら、以下のようにfont.familyとfont.sans-serifの設定を追加します。
font.sans-serifの設定はコメントアウトされているので、行をコピーしてその下に貼り付けて、貼り付けた行のコメントを外して、先頭にIPAexGothicを追加するイメージです。
font.family : IPAexGothic
font.sans-serif : IPAexGothic, ...
キャッシュのクリアはmatplotlibを利用するpython環境を起動して以下を実行する
import matplotlib
matplotlib.font_manager._rebuild()
方法2: japanize-matplotlibを使う
ターミナルで以下のコマンドを実行します。(今のところcondaではインストールできないみたいなので、pipのみです)
pip install japanize-matplotlib
でインストールが完了すると、以下のようにimport japanize-matplotlibすることで日本語フォントが使えるようになります。
import matplotlib.pyplot as plt
import japanize_matplotlib
plt.plot([1, 2, 3, 4])
plt.xlabel('x軸')
plt.ylabel('y軸')
plt.show()
ただ、これだと毎回import japanize_matplotlib
をする必要があるので、方法1をおすすめします。
参考文献
Python matplotlibで日本語の設定方法
【超簡単】たったの2ステップで matplotlib の日本語表記を対応させる方法
Discussion