※AdventCalendar埋め投稿です。Python その2カレンダーの8日目、 @kirk3110 さんの代理として投稿します。もしご準備されていましたら取り下げますのでご連絡を。)
やること
pythonのデファクトなグラフ化ライブラリmatplotlibとそのラッパーseabornを使ってグラフ作ると日本語が化けることがあるのでその対処法まとめです。
特にMacの環境では文字化けすることが多いと思います。
原因
- 日本語フォントが入っていない
- 日本語フォント入ってても設定ファイルで指定されていない
- 日本語フォント設定してもキャッシュがあってなかなか反映されない
これらを一つずつ対応していきます。
対処
日本語フォント入れる
ダウンロード
ここのを使ってる人が多いらしい。。。
https://ipafont.ipa.go.jp/
ipaexg00301.zip
をダウンロードして、ipaexg.ttf
を取得。
matplotlibのfontフォルダに入れる
import matplotlib as mpl
print(mpl.matplotlib_fname())
↑これで表示される所のに移動し、font/ttf/
に入れます。
(python/lib/site-packages/matplotlib/mpl-data
とかだと思いますが、pyenvなどの環境分離ツール使ってる場合は~/.pyenv/...
配下だったりするので注意)
seabornの設定ファイル変更
引き続きsite-packages/seaborn/rcmod.py
を編集
92行付近、のfont=""の部分を"IPAexGothic"にする
def set(context="notebook", style="darkgrid", palette="deep",
font="IPAexGothic", font_scale=1, color_codes=True, rc=None):
203行付近、font.familyも"IPAexGothic"にする
"font.family": ["IPAexGothic"],
matplotlibのキャッシュ消す
~/.matplotlib/
にキャッシュやら何やらがあるので全部消しちゃう。
rm -rf ~/.matplotlib/*
あとはimport matplotlib
をやり直して日本語表示されたら成功です。
以上、ちょっとした小ネタでした。