MacでMatplotlibの日本語の文字化けを直す

投稿者: | 2019-06-08

MacでAnacondaを使ってPython環境を構築しMatplotlibでグラフを描画すると日本語が文字化けしてしまいます。

上の図の赤枠のように日本語部分が文字化けして「□」になっています。これはMatplotlibが使うフォントが日本語に対応していないためで適切なフォントを入れることで解消することができます。

実行環境

以下の環境で動作をさせています。

  • Mac: MacBook Pro 2017
  • OS: Mojave 10.14.5
  • Anaconda 2018.12版

日本語フォントのダウンロード

まず日本語フォントをダウンロードします。無料の日本語フォントを公開している「IPAexフォント/IPAフォント」にアクセスしダウンロードページからIPAexフォントをダウンロードします。

ここでは「IPAexゴシック(Ver.004.01)フォント」(ipaexg00401.zip)をダウンロードします。

IPAexゴシックフォントのコピー

ダウンロードしたzipファイルを解凍すると

  • ipaexg.ttf
  • IPA_Font_License_Agreement_v1.0.txt
  • Readme_ipaexg00401.txt

の3つのファイルができます。

フォントファイルである「ipaexg.ttf」をMatplotlibのフォントフォルダ(/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/)にコピーします。

$ cp ipaexg.ttf /anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/

Matplotlibの設定

Matplotlibの設定ファイル(/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc)のフォント設定を変更します。

$ vi /anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

設定ファイルの「#font.family」から始まる行を検索し

#font.family : sans-serif

font.family : IPAexGothic

に書き換え保存します。(コメント行を示す「#」を削除する必要があります)

動作確認

Jupyter notebookを起動しMatplotlibで日本語を含むグラフを描画してみます。

import matplotlib.pyplot as plt
plt.bar(x=['1月', '2月', '3月'], height=[1, 1.4, 1.2]);


と日本語が正しく表示されるはずです。

なお、設定直後はフォントが見つからないというエラーが出ることがあります。

これはMatplotlibのキャッシュが残っているためで一度、Jupyter notebookを終了し

$ rm -rf ~/.matplotlib/

とキャッシュを削除してからJupyter notebookを起動すると正しくフォントが読み込まれるようになります。

スポンサーリンク


コメントを残す

メールアドレスが公開されることはありません。