Docker + Matplotlib + Noto Sans での日本語化
Notosans Install
参考:CentOSにNoto Sans CJK JPをインストール | Codebase Blog
$ wget https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
$ unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp
$ chmod 644 /usr/share/fonts/NotoSansCJKjp
OSのキャッシュ削除
$ sudo fc-cache -fv
Matplotlib側の対応
キャッシュ削除
参考:matplotlib にフォントが無いと怒られる場合の対処 - Qiita
$ rm ~/.cache/matplotlib/fontlist-300.json
Notebook上でのフォント指定
今使えるフォントを把握
import matplotlib.font_manager as fm
fonts = fm.findSystemFonts()
print([[str(font), fm.FontProperties(fname=font).get_name()] for font in fonts[:10]])
Outputはこんな感じで出てくるので,今回 Noto Sans CJK JP
を指定.
[['/usr/share/texmf/fonts/opentype/public/lm/lmmonoproplt10-regular.otf', 'Latin Modern Mono Prop Light'], ['/usr/share/texmf/fonts/opentype/public/lm/lmmono9-regular.otf', 'Latin Modern Mono'], ['/usr/share/texmf/fonts/opentype/public/lm/lmsans9-regular.otf', 'Latin Modern Sans'], ['/usr/share/texmf/fonts/opentype/public/lm/lmromanunsl10-regular.otf', 'Latin Modern Roman Unslanted'], ['/usr/share/fonts/NotoSansCJKjp/NotoSansCJKjp-Medium.otf', 'Noto Sans CJK JP'], ['/usr/share/texmf/fonts/opentype/public/lm/lmroman6-regular.otf', 'Latin Modern Roman'], ['/usr/share/fonts/truetype/liberation/LiberationSerif-Italic.ttf', 'Liberation Serif'], ['/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', 'Liberation Sans'], ['/usr/share/texmf/fonts/opentype/public/lm/lmroman10-italic.otf', 'Latin Modern Roman'], ['/usr/share/texmf/fonts/opentype/public/lm/lmromanslant12-regular.otf', 'Latin Modern Roman Slanted']]
利用するフォントを設定
from matplotlib import rcParams
rcParams['font.family'] = 'Noto Sans CJK JP'
これで,Noto SansでのMatplotlibの設定が完了しました!
Discussion