想定する状況
例えばサーバー(ubuntu)上のjupyterlab+matplotlibで,デフォルトで入っていないフォントで図を作る場合など,
自分がやった時の環境は
- macOS (local): 10.14.6
- ubuntu (server): 16.04
- jupiterlab: 0.33.12
- matplotlib 2.2.4
だけど,後述するFontsディレクトリなどの場所は,OSバージョンによっては異なるかも.
やり方
やり方はいくつかあると思うが,自分はローカルのフォントファイル(.ttf)をサーバーにSCPした.
- (目当てのフォントがローカルにも入っていない場合) ローカルでフォントをダウンロード.
- サーバー上の"/usr/share/fonts/truetype"以下に,適当なディレクトリを作成.
- ローカルの"/Library/Fonts"にあるフォントファイルを,上記で作成したディレクトリにscp
- "~/.cache/matplotlib/fontList.json"をmv or rm.
- サーバーのjupyterlab上で,
plt.rcParams['font.family'] = 'Times New Roman'
でフォントを指定.この例だとTimes New Roman. - あとは
plt.show()
すれば,figureのフォントが反映されているはず.