プロットしたグラフのタイトルやラベルに日本語が混ざっていると文字化けしてしまう。これはmatploblitが日本語フォントを持っていないことが理由。日本語フォントを指定してやる事で解決可能。
本目的の為に実施した内容を以下にまとめる。
環境は以下の通り:
- VirtualBox上のxubuntu15.10
- pythonはpyenvでインストール
- Anacondaを利用
- フォントはSystemで使っているRictyを流用する
pyenvでAnacondaをインストールした場合はmatplotlibrcの雛形は以下のディレクトリに置かれている。
$ ~/.pyenv/versions/anaconda3-2.5.0/lib/python3.5/site-packages/maplobli/mpl-data/matplotlibrc
これを以下ディレクトリにコピーする
$ ~/.config/matplotlib
このディレクトリにコピーしたmatplotlibrc内を以下のように編集してRictyを使用する事にした。Rictyはsystemフォントが気に食わなくて、以前自分でインストールしたもの。
font.family : ricty
Rictyは
$ /usr/local/share/fonts
にインストールしていたが、これをそのままコピーするとディスクスペースの浪費となってしまうので、シンボリックリンクで対応することにした。
matplotlibで使用するフォントは以下のディレクトリに集められている必要がある。
$ ~/.pyenv/versions/anaconda3-2.5.0/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf
ここに以下のようにシンボリックリンクを作成
$ cd ~/.pyenv/versions/anaconda/3-2.5.0/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf
$ ln -s /usr/local/share/fonts/Ricty-Regular.ttf Ricty-Regular.ttf
$ ln -s /usr/local/share/fonts/Ricty-Bold.ttf Ricty-Bold.ttf
$ ln -s /usr/local/share/fonts/RictyDiscord-Regular.ttf RictyDiscord-Regular.ttf
$ ln -s /usr/local/share/fonts/RictyDiscord-Bold.ttf RictyDiscord-Bold.ttf
これでグラフ中で日本語が使えるようになる。