Python
matplotlib

matplotlibで日本語を表示する(フォントを入れるところから)

はじめに

matplotlibで日本語を表示しようというブログ記事がいっぱいあったのですが,フォントを入れるところで苦労したので備忘録としてまとめておきたいと思います.

実行環境

macOS Sierra 10.12.6

ttfファイルを入れる

まずは入れたいフォントのttfファイルを用意しましょう.

※ttfとは?
よくTrueTypeフォントのデータが入っているファイルに付く拡張子
https://wa3.i-3-i.info/word14135.html

オススメフォントは
https://ipafont.ipa.go.jp/node26
https://ipafont.ipa.go.jp/old/ipafont/download.html
のIPAexGothicなどが色々な漢字に対応していて良い感じです.今回はこれを使います.

現在使っているpython環境において以下を実行

import matplotlib as mpl
print(mpl.matplotlib_fname())

すると例えば次のようなアドレスが出てきます.
/anaconda/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc

このmatplotlibrcがあるフォルダに移動しましょう.今回の場合は

cd /anaconda/lib/python3.5/site-packages/matplotlib/mpl-data/`

を実行します.

次に以下を実行してttfのフォルダに移動します.

cd ./fonts/ttf

ここにttfファイルを入れます.

キャッシュを削除

次にmatplotlibの設定ファイルがある場所に移動します.

cd ~/.matplotlib

lsでファイルを見てみると,以下のファイルがあるはずです.
fontList.cache fontList.json
これを削除してください.

※Windowsの場合,User/admin/.matplotlibにあることが多いようです.

あとは実行してみるのみ!

以下のようなpythonコードを実行してみましょう!

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'IPAGothic'
plt.title('天網恢恢疎にして漏らさず')
plt.show()

するとあら不思議!
image.png

こんな難しい漢字も出せちゃいます!

最後に

天網(てんもう)恢恢(かいかい)疎(そ)にして漏(も)らさず
《「老子」73章から》天の張る網は、広くて一見目が粗いようであるが、悪人を網の目から漏らすことはない。悪事を行えば必ず捕らえられ、天罰をこうむるということ。
コトバンク