Pythonでグラフを作成する際に欠かせないライブラリといえば matplotlib ですが、日本語をグラフに表示しようとすると、文字化けしてしまうことがあります。
「タイトルに日本語を入れたら□(四角)になってしまった…」
「軸ラベルが表示されない…」
こんな経験をされた方も多いのではないでしょうか?
この記事では、たった1行で日本語の文字化けを解消できる方法をご紹介します。Python初心者の方でもすぐに試せるように、インストールから使い方までステップバイステップで解説します。
なぜmatplotlibで日本語が文字化けするの?
matplotlib はもともと英語圏で開発されたライブラリのため、初期設定では日本語フォントが含まれていません。そのため、日本語を表示しようとすると以下のように「豆腐文字(□)」が出たり、何も表示されなかったりします。
これは、使えるフォントに日本語対応フォントが含まれていないことが原因です。
解決策:japanize_matplotlibを使おう
この日本語文字化け問題を、とても簡単に解決してくれるモジュールがあります。それが japanize_matplotlib です。
japanize_matplotlibとは?
matplotlibで日本語を表示できるようにしてくれる便利なライブラリです。- 特別な設定は不要で、インストールして import するだけで日本語対応になります。
- どのプラットフォームでも動作し、既存の
matplotlibコードにもそのまま使えます。
japanize_matplotlibのインストール方法
では、まずはインストールしてみましょう。
ステップ①:pipコマンドでインストール
ターミナルまたはコマンドプロンプトで以下のコマンドを実行してください。ハイフンとアンダースコアを間違えないように注意してください。
pip install japanize-matplotlib※ pip はPythonパッケージをインストールするための標準ツールです。エラーが出る場合は、pip3や仮想環境内での実行をお試しください。
japanize_matplotlibの使い方(サンプル付き)
インストールが完了したら、次は実際に使ってみましょう。
ステップ②:Pythonコードにimportを追加
以下のコードを見てください。
import matplotlib.pyplot as plt
import japanize_matplotlib # ← この1行を追加するだけ!
# データをプロット
plt.plot([1, 2, 3], [4, 5, 6])
# 日本語を使ったタイトル・ラベル
plt.title("サンプルグラフ")
plt.xlabel("X軸のラベル")
plt.ylabel("Y軸のラベル")
# グラフを表示
plt.show()出力されるグラフ
このコードを実行すると、日本語のタイトルや軸ラベルが正しく表示されたグラフが表示されるはずです!
よくある間違い・注意点
japanize_matplotlibは非常に便利ですが、以下の点に注意してください。
① importのタイミングはいつでもOK
import japanize_matplotlibは、import matplotlib.pyplot as pltの前でも後でも問題ありません。- ただし、コードの見やすさのために
matplotlibの後に書くことが一般的です。
② 他のフォント設定と併用すると競合する場合がある
matplotlib.rcParamsで独自にフォントを設定していると、日本語が再び表示されなくなることがあります。japanize_matplotlibを使っている場合は、フォント設定を追加で行わないことをおすすめします。
③ Google Colabでは動作に注意
- Google Colabを使っている場合、一部環境では日本語フォントの設定が必要なことがあります。
- その場合は、Colab用にフォントを明示的に設定する方法も検討してください(別記事で紹介予定です)。
おわりに
matplotlibでの日本語文字化けは、Python初心者にとってつまずきやすいポイントですが、japanize_matplotlibを使えばたった1行のimportだけで解消できます。
今後、グラフに日本語のタイトルやラベルを使いたいときは、ぜひこの方法を思い出してみてください。
参考リンク
最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。Poetryについても詳しく説明されています。ぜひ手に取ってみてください。
最後まで読んでいただきありがとうございます。

