俺、サービス売って家買うんだ

Swift, Vue.js, 統計, GCP / このペースで作ってればいつか2-3億で売れるのがポっと出来るんじゃなかろうか

matplotlib, seaborn のラベルを日本語対応する。

iPythonでデータ分析するときに、当然matplotlibやseabornでグラフを描画するのですが、日本語対応されてなく文字化けを起こします。
グラフの描画はデータの概要を掴んだりビジュアライズしたりするためなので、文字化けを起こしていると割と致命的です。

今回はその修正方法でちょっとだけハマったので、まとめておきます。

環境:

Mac OS Sierra
Python 3.5.1 :: Anaconda 4.0.0 (x86_64)
iPython (jupyter)

手順

0. フォントがあるかどうか確認。

以下のようにすると使えるフォントが一覧で確認できます。

import matplotlib as mpl
font_paths = mpl.font_manager.findSystemFonts()
font_objects = mpl.font_manager.createFontList(font_paths)
font_names = [f.name for f in font_objects]
print(font_names)

日本語フォントがある場合は、

sns.set(font='AppleMyungjo')#日本語フォント設定

で設定すると対応できますが、ない場合は下記手順でダウンロードしてくる必要があります。

1. TTF形式でIPAフォントをダウンロード

IPAフォントを公式サイトからダウンロードします。
使うのはXXX.ttfの4つのファイルです。 f:id:hayato1986:20161222205107p:plain

2. TTFファイルをmatplotlibフォルダ内にコピー

僕はpyenvを使っているので下記のようなパスでした。

/Users/[user名]/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf/

こちらにダウンロードした*.ttfファイルをコピーします。

$ cp ~/Downloads/IPAfont00303/*.ttf /Users/[user名]/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf/

3. matplotlibの設定ファイルを作成

終わったらフォントファミリーのデフォルトを指定します。seabornはmatplotlibのラッパーぽい雰囲気なので、設定はmatplotlibだけでOKです。

vi ~/.matplotlib/matplotlibrc

でファイルを作成して、以下を追加。

font.family         : IPAmincho

4. 再起動

Pythonを再起動すると日本語が表示されるようになってます。 f:id:hayato1986:20161222210608p:plain

以上で日本語が使えるようになったと思います。 オラッオラオラオラッ(•ө•)♡