matplotlibで日本語が文字化け!解決策を解説します

pythonの可視化ライブラリmatplotlibを使用する際、日本語を含むグラフを作成しようとすると文字化けが発生することがあります。この記事では、その原因と、いくつかの解決策を解説します。

なぜ文字化けが起きるのか

matplotlibはデフォルトで日本語をサポートしていないフォントを使用しています。そのため、日本語を含むグラフを作成すると文字が正しく表示されず、代わりに以下の画像のように文字化けが発生します。

matplotlib_日本語_文字化け

解決策の詳細

matplotlibで日本語を表示できるようにするには、次の3つの方法があります。

  1. 設定ファイルを編集する
  2. コード内で日本語対応フォントを指定する
  3. japanize-matplotlibを使う[→ラクです]

1. 設定ファイル(matplotlibrc)を編集する方法

matplotlibの設定ファイルmatplotlibrcを編集することで、デフォルトのフォントを変更できます。このファイルは通常、matplotlibのインストールディレクトリ内か、ユーザーのホームディレクトリの.config/matplotlibフォルダ内にあります。

font.familyfont.sans-serif オプションを編集して、好みのフォントに設定します。例えば次のように設定してみてください。

font.family : sans-serif
font.sans-serif : Arial, Liberation Sans, DejaVu Sans, Bitstream Vera Sans, sans-serif

2. コード内で日本語フォントを指定する方法

コード内でrcParamsを設定するれば、日本語で表示できるようになります。plt.rcParams['font.family']を日本語対応のフォントにすれば、文字化けしなくなります。

 import matplotlib.pyplot as plt

# フォントの設定
plt.rcParams['font.family'] = 'Hiragino Sans'

# グラフを描画してみる
plt.plot([1, 2, 3, 4, 5])
plt.title('お試しプロット')
plt.xlabel('エックス軸')
plt.ylabel('ワイ軸')
plt.show()
matplotlib_日本語表示

3. japanize-matplotlibを使う方法

個人的にはこの方法が最も簡単だと思います。japanize-matplotlibをインストールして、読み込むだけです。

pip install japanize-matplotlib 

上のコマンドでjapanize-matplotlibをインストールしてください。次に、matplotlibをインポートするときに、同時にこれもインポートするだけで日本語表示に対応できるようになります。

import matplotlib.pyplot as plt
import japanize_matplotlib


# グラフを描画してみる
plt.plot([1, 2, 3, 4, 5])
plt.title('お試しプロット')
plt.xlabel('エックス軸')
plt.ylabel('ワイ軸')
plt.show()
matplotlib_japanize_matplotlib
上部へスクロール