👻

matplotlibでフォント指定:日本語文字化け対策

2025/02/09に公開

pythonのmatplotlibやseabornでグラフを描画すると
日本語のラベルなどが文字化けします

タイトルが文字化けしたグラフの例

文字化け対策

日本語対応のフォントを指定すると
文字化けを回避できます

import matplotlib.pyplot as plt
# フォントを指定
plt.rcParams['font.family'] = 'Source Han Code JP'

お好みのフォントを指定してください

体脂肪率のヒストグラムでした

使用フォント

日本語とアルファベットがバランスよくキレイに表示される
源ノ角ゴシック Code JPを使用しました
https://github.com/adobe-fonts/source-han-code-jp

文字化けの原因

デフォルトで使用されるフォントが日本語表示に対応していません

plt.rcParams['font.family']

# 出力
['sans-serif']

グラフを表示すると次のようなWarningがでます

UserWarning: Glyph 20307 (\N{CJK UNIFIED IDEOGRAPH-4F53}) missing from font(s) DejaVu Sans.

グラフ表示に使用されているフォントが
日本語表示に対応していないため、文字化けを起こしていました

日本語に対応している任意のフォントを指定することで
文字化けを解消できます

# フォントを指定
plt.rcParams['font.family'] = 'Source Han Code JP'

文字化け対策別解

日本語表示用ライブラリjapanize-matplotlibをインポートすると文字化け解消します

インストール
pip install japanize-matplotlib

使い方は、japanize_matplotlibをimportの最後に
importするだけです

インポート
import matplotlib.pyplot as plt  
import japanize_matplotlib  

https://pypi.org/project/japanize-matplotlib/

Discussion