はじめに
様々な環境でjupyterを使うたびに日本語文字化け問題に苦しんでいる気がします。
今回は解決策がドンピシャのものがなかったので、記録します。
概要
Docker上のJupyter Notebookのmatplotlibの日本語文字化けを解決する。
(Dockerfileに追記する形で進めます。)
ポイント
- フォントファイルの置き場所を確認する
- フォントのダウンロード
- 確認した場所にフォントファイルを置く
- matplotlibの設定ファイルの場所を確認
- matplotlibのフォントを設定
- キャッシュの場所確認
- キャッシュを削除
作業
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