LoginSignup
1
2

More than 5 years have passed since last update.

「matplotlib を日本語に対応させる」系記事の補完

Last updated at Posted at 2018-11-14

はじめに

世に星の数ほどある matplotlib 日本語対応系(豆腐解消系)の記事ですが、それらを見て設定したはずなのに上手くいかないことがたまにあります。
ググっても対処法がすぐに見つからなかったものをまとめます。

実行環境

  • CentOS 7.3
  • Python 3.6.5
  • matplotlib 3.0.2

pyenv-virtualenv におけるフォントファイルの置き場所がわからない

日本語対応フォントをダウンロードして所定の場所に置くときに、環境デフォルトの matplotlibrc を探しに行きます。
このパスの近くに fonts/ttf/ ディレクトリがあるので、フォント ttf ファイルをコピーして設置します。

python
import matplotlib
matplotlib.matplotlib_fname()

ただし、既に ~/.matplotlib/matplotlibrc を作成している場合、上記コマンドでデフォルトパスが表示されず、ttf ファイルってどこに置けばいいんだっけ... となります。
特に pyenv-virtualenv 環境で、環境構築に詳しくないけど便利だから使ってる(私です)みたいな場合、とにかく見つかりません。

pyenv-virtualenv 環境を使っている場合、ttf ファイルは以下ディレクトリに置きましょう。

~/.pyenv/versions/<pyenv name>/envs/<virtualenv name>/lib/python<version>/site-packages/matplotlib/mpl-data/fonts/ttf/

自分で作成した matplotlibrc が参照されない

フォントの指定を matplotlibrc 内で行うのですが、環境デフォルトのファイルを編集することはあまり推奨されず、ホームディレクトリ以下に ~/.matplotlib/matplotlibrc を作成して、その中にフォントの指定を記載します。
普通はデフォルトの matplotlibrc ではなく ~/.matplotlib/matplotlibrc を優先して参照するようになっているのですが、何かの影響でデフォルトの matplotlibrc を参照したままになってしまうことがあります。

matplotlibrc環境変数 MATPLOTLIBRC で指定されたディレクトリ以下を探しに行くので、確認してデフォルトのままになっている場合は ~/.bashrc などで明示的に指定しましょう。

bash
echo $MATPLOTLIBRC
~/.bashrc
# 想定したパスと違った場合、以下を追記
export MATPLOTLIBRC=$HOME/.matplotlib

キャッシュが削除されない

さあ設定が終わってプロットしてみるぞ!と意気込んだものの、まだグラフタイトルに豆腐が鎮座していて「うわ...」ってなること、よくあります。
フォントの設定を済ませたらフォントのキャッシュファイルを削除する必要があるのですが、それっぽいファイルが色んな所にあって、消しても消しても設定が反映されません。

消すべきキャッシュファイルは以下コマンドで確認できます。
示されたディテクトリ以下のファイルを削除しましょう。

python
import matplotlib
matplotlib.get_cachedir()
# ~/.cache/matplotlib などが返ってくるので、そこ以下のファイルを削除する

おわりに

筆者は良く pyenv-virtualenv で環境の切り分けを行っているのですが、毎度「matplotlib 日本語」でググっているので、自分の備忘95%でまとめました。
お役に立つことがあれば幸いです。

いつもたどり着くページ

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2