どこにでもいる30代SEの学習ブログ

主にプログラミング関連の学習内容。読んだ本の感想や株式投資についても書いてます。

【機械学習】matplotlibの日本語文字化け対策(Amazon Linux2)

f:id:predora005:20200921201935p:plain

※ 2020/05/20にQrunchで書いた記事を移行しました。

matplotlibの文字化け対策は多くの情報がありますが、Amazon Linux2向けの情報はありませんでした。他のOSと基本的な対策方針は同様です。日本語フォントをインストールし、キャッシュを削除します。

対策手順

[1] 日本語フォントのインストール

IPAexフォントの一つである'IPAGothic'をインストールします。

sudo yum -y install ipa-gothic-fonts

[2] ソースコードに追記

キャッシュの削除、及び、日本語フォントを指定するコードを追加します。

import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.font_manager._rebuild()    # キャッシュの削除
plt.rcParams['font.family'] = 'IPAGothic'    # 日本語フォントを指定

[3] 設定ファイルの変更

matplotlibの設定ファイルを変更します。 この方法で上手くいくようなら、[2]ソースコードの追記は不要です。

まずは以下のソースコードで、設定ファイルの場所を把握します。

import matplotlib as mpl
print(mpl.matplotlib_fname())
# /home/ec2-user/.local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

設定ファイルに以下の行を追加します。

font.family  : IPAGothic

終わりに

他OS向けの対策をしても若干手順が異なり上手くいかず、思いのほか時間がかかりました。

ソースコードに追記する方法は、下記記事を参考にさせていただきました。

SageMaker上のmatplotlibを日本語表記にする | Developers.IO

備忘録

matplotlibの情報表示

import matplotlib as mpl

print(mpl.get_configdir())       # 設定ディレクトリの表示
print(mpl.get_cachedir())        # キャッシュディレクトリの表示
print(mpl.matplotlib_fname())    # 設定ファイルの表示
print(mpl.font_manager.findSystemFonts())    # フォントリストの表示
print(mpl.rcParams['font.family'])           # 使用中フォントの表示

IPAGothic以外のIPAexフォントのインストール

sudo yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts