Python matplotlib で日本語表示

Windows, macOS, Ubuntu (Linux) 共に,以下のようにして matplotlibrc の居場所を探し出して,font.serif: と font.sans-serif: に日本語フォント名を挿入する。

>>> import matplotlib as mpl
>>> mpl.matplotlib_fname()

matplotlibrc の以下の部分を変更する。

# font.serif :  DejaVu Serif, …
# font.sans-serif : DejaVu Sans, …

Windows の場合

choco install -y python --version=3.7.5 でインストールした場合,

C:¥Python37¥lib¥site-packages¥matplotlib¥mpl-data¥matplotlibrc を以下のように。

font.serif : Yu Mincho, DejaVu Serif, …
font.sans-serif : Yu Gothic, DejaVu Sans, …

また,Google Noto Fonts からNoto Sans CJK JP と Noto Serif CJK JP をダウンロードしてインストールしたら,

font.serif : Noto Serif CJK JP, DejaVu Serif, …
font.sans-serif : Noto Sans CJK JP, DejaVu Sans, …

としてもよいかもしれない。

macOS の場合

brew install python でインストールした場合,ついでに
brew cask install font-noto-sans-cjk-jp font-noto-serif-cjk-jp して,

/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc を以下のように。

font.serif : Noto Serif CJK JP, DejaVu Serif, …
font.sans-serif : Noto Sans CJK JP, DejaVu Sans, …

なお,インストールした Noto フォントは ~/Library/Fonts/ に入るので,管理者権限で /Library/Fonts/ フォルダに移動すると,全てのユーザが使えるようになるかと思われる。

Ubuntu (18.04) の場合

Noto フォントはインストール済みだと思うので,matplotlibrc を探し出して以下のように。

font.serif : Noto Serif CJK JP, DejaVu Serif, …
font.sans-serif : Noto Sans CJK JP, DejaVu Sans, …

Visual Studio Code での表示例