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

もし、

「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」

などと感じられたら、ぜひ検討してみてください。

個別面談・説明会はこちら!


まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する


■YouTube(SiiD受講生さま実績)

■YouTube(セイト先生メイン)

■X(旧Twitter)