すえー blog

output場所

Matplotlibの日本語表示で少しハマったのでメモ

はじめに

今、この本を勉強していてタイトルの通り少しハマったのでメモしておきます。

PythonユーザのためのJupyter[実践]入門

PythonユーザのためのJupyter[実践]入門

環境

前提条件

  • 「Source Han Code JP」のフォントはインストール済みです。
    ※以下からダウンロードしてます。フォント自体のインストールはotfのファイルをダブルクリックするだけでOK。 github.com

ハマったこと

本では以下の3つのパターンで日本語表示ができると記載されていました。
①コード内で「FontProperties」のインスタンスを生成して設定。
②「rcParams」を使用して一括で設定。
③「matplotlibrc」の設定ファイルに対して設定。

上記の③の際に設定ファイルの中身を修正して、「fontList.py3k.cache」ファイルを削除してjupyterのカーネルを再起動したが日本語化しないという現象。。。

こんな感じで↓ f:id:kaneshirok:20171128173704p:plain

設定ファイルの読み込み優先順は以下のようになっている。
①現在のワーキングディレクトリにあるmatplotlibrc
②$MATPLOTLIBRC/matplotlibrc
③$HOME/.config/matplotlib/matplotlibrc、または$XDG_CONFIG_HOME/matplotlib/matplotlibrc、または.matplotlib/matplotlibrc(OSや環境により異なる)
④matplotlibパッケージがインストールされたディレクトリのmpl-data/matplotlibrc

で、自分は①の対応したが、なぜが上手く行かない。。。

解決策

まさかとは思い、最後に行うjupyterのカーネルを再起動ではなく、jupyter自体を再起動したらまさかの解決。。。
しかも、よく見たら本に「jupyterの再起動」または「カーネルの再起動」でも大丈夫と書いてあった。。。
設定ファイルを追いかけていた時間が。。。
これを教訓にします。。。

まとめ

今回の手順をまとめておきます。
①「matplotlibrc」のファイルをワーキングディレクトリにコピー

import shutil
from matplotlib import matplotlib_fname

# 設定ファイルをコピー
shutil.copyfile(matplotlib_fname(), 'matplotlibrc')

②ワーキングディレクトリにコピーされた「matplotlibrc」の設定ファイルをエディタかなんかで編集をする。
編集する箇所は「208行目」付近の「#font.sans-serif」の行をコメントアウトを除去して、「DejaVu Sans」の前に「Source Han Code JP」を追加する。

③そして、「fontList.py3k.cache」ファイルを削除する

cd ~/.matplotlib/
rm -f fontList.py3k.cache

④最後にjupyter自体を再起動←※ここ重要

あとはこんな感じで表示される。 f:id:kaneshirok:20171128171932p:plain

あー久々にブログ書いた。 頑張ります。。。