Docker上のJupyter Notebookのmatplotlibの日本語文字化けを解決する


はじめに

様々な環境でjupyterを使うたびに日本語文字化け問題に苦しんでいる気がします。
今回は解決策がドンピシャのものがなかったので、記録します。

概要

Docker上のJupyter Notebookのmatplotlibの日本語文字化けを解決する。
(Dockerfileに追記する形で進めます。)

ポイント

  1. フォントファイルの置き場所を確認する
  2. フォントのダウンロード
  3. 確認した場所にフォントファイルを置く
  4. matplotlibの設定ファイルの場所を確認
  5. matplotlibのフォントを設定
  6. キャッシュの場所確認
  7. キャッシュを削除

作業

1.フォントファイルの置き場所を確認する

jupyter上で確認。


import matplotlib.font_manager as fm
fm.findSystemFonts()

['/ファイル置き場PATH/なんとか.ttf',
'/ファイル置き場PATH/なんか.ttf'] のように表示されると思います。(3で使う)

2. フォントのダウンロード

IPAexフォントから「IPAexゴシック」をダウンロード。
Dockerfileと同じディレクトリにipaexg.ttf置いておく。

3. 確認した場所にフォントファイルを置く

Dockerfileに追記。

COPY ipaexg.ttf  /ファイル置き場PATH(1で確認)/

4. matplotlibの設定ファイルの場所を確認

jupyter上で確認。


import matplotlib
matplotlib.matplotlib_fname()

'/設定置き場PATH/matplotlib/matplotlibrc'のように表示されると思います。(5で使う)

5. matplotlibのフォントを設定

Dockerfileに追記。

RUN echo 'font.family : IPAexGothic' >> /設定置き場PATH/matplotlib/matplotlibrc

6. キャッシュの場所確認

jupyter上で確認。


import matplotlib as mpl
mpl.get_configdir()

'/キャッシュ置き場PATH/.cache/matplotlib'のように表示されると思います。(6で使う)

7. キャッシュの削除

!rm -r /キャッシュ置き場PATH/.cache/matplotlib

おわり