HYT MachineWorks

やったこととか思いついたことをメモしておくブログです。

seabornとmatplotlibで豆腐を回避(文字化け回避)して日本語を表示する

 

seabornとmatplotlibで豆腐を回避とは?

matplotlibやそのラッパーであるseabornでは、デフォルトの環境で日本語を軸や凡例に用いると

日本語 → 

という風に文字化けする。その文字の見た目から豆腐とも呼ばれる。その回避方法をバージョンupと入れ直す度に忘れて焦るのでメモする。

 

詳細は、下のサイトを参考にした。

qiita.com

対策の流れ

1.matplotlibのインストールフォルダの \mpl-data\fonts\ttf にフォントをコピー

2.matplotlibのインストールフォルダの \mpl-data\にあるmatplotlibrcをc:\users\%username%\.matplotlib にコピー

3.コピーしたmatplotlibrcにインストールしたフォントを追記

4.seabornのインストールフォルダのrcmod.pyにフォントをsan-serifから修正

5.c:\users\%username%\.matplotlib 内のfontList.py3k.cacheを削除

6.pythonを立ち上げてseabornをimportって流れです。

2017/10/3 追記 最新のSeabornでは、matplotlibrcを読みに行くのでseaborn側の対応は不要です

注意!!

 2と5は上のサイトに書かれていないので注意すること。

いつも、4のrcmod.pyの書き換えを忘れてテンパってた。

追記

Google Noto Fontを使ってやり方を少し自分の中で整理した新しい記事を書いたので合わせて参照していただきたい。

hytmachineworks.hatenablog.com