Pythonのグラフ描画ライブラリである「matplotlib」で、日本語を表示しようとすると文字化けしてしまいます。この記事では、matplotlibで日本語を使用する方法について紹介します。
matplotlibで日本語が文字化けする例
matplotlibのグラフに日本語を表示させようとすると、文字化けしてしまい正しく表示できません。以下、文字化けが発生するサンプルコードです。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, np.pi * 4, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y, label = 'サイン')
ax.set_xlabel('Xラベル', fontsize = 18)
ax.set_ylabel('Yラベル', fontsize = 18)
ax.set_title('タイトル', fontsize = 18)
ax.text(0, -0.8, 'テキスト', fontsize = 14)
ax.legend()
plt.show()
このコードを実行すると、日本語が文字化けしてしまいます。
matplotlibで日本語を使用する方法
matplotlibで、日本語に対応したフォントを指定すると、文字化けせずに日本語を表示できるようになります。以下、日本語に対応したフォントを指定し、文字化けせずに表示させるサンプルコードです。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, np.pi * 4, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y, label = 'サイン')
ax.set_xlabel('Xラベル', fontsize = 18, fontname = 'MS Gothic')
ax.set_ylabel('Yラベル', fontsize = 18, fontname = 'MS Gothic')
ax.set_title('タイトル', fontsize = 18, fontname = 'MS Gothic')
ax.text(0, -0.8, 'テキスト', fontsize = 14, fontname = 'MS Gothic')
ax.legend(prop = {'family' : 'MS Gothic'})
plt.show()
このコードを実行すると、日本語が文字化けせずに表示できています。
日本語を表示できるフォントの調べ方
日本語に対応したフォントの確認方法を紹介します。フォント情報が記載されたファイルは、C:/User/ ---ユーザー名--- /.matplotlib/fontlist-v330.json
にあります。ファイルの中のname部分が、フォント名に対応しています。
また、各要素ごとにfontnameを指定するのが面倒な場合は、rcParamsの設定値を変更することでプログラム全体のグラフのフォントを一括で変更することもできます。.