2
1

More than 1 year has passed since last update.

matplotlibで日本語を表示する方法

Posted at

記事内容

以下の画像のように、日本語を使ってmatplotlibのグラフ表示を行えるようにする。
japanese_matplotlib.png

状況

matplotlibを用いて折れ線グラフを生成しようとしていた時のこと。日本語のタイトルや、日本語のラベル値を設定しようとしていた。以下のプログラムは、例として用意したプログラムである。

import sys
import matplotlib.pyplot as plt

def main():
    section = ["りんご", "みかん", "ぶどう", "メロン"]
    # 日本語ラベルを指定
    x = range(len(section))
    plt.xticks(x, section)
    
    # グラフ生成
    plt.xlabel("日本語のラベル")
    plt.ylabel("ylabel")
    plt.ylim(0, 15)
    plt.grid()
    
    y = [12, 6, 4, 10]
    plt.plot(x, y, marker="o")
    plt.title('日本語のタイトル')

    plt.savefig("japanese_matplotlib.png")
    


if __name__ == '__main__':
    sys.exit(main())

以下のコマンドで実行する。

python3 japanese_matplotlib.py 

そうすると、以下のようなエラーと画像が生成される。

~/japanese_matplotlib.py:20: UserWarning: Glyph 26085 (\N{CJK UNIFIED IDEOGRAPH-65E5}) missing from current font.
  plt.savefig("japanese_matplotlib.png")
...

japanese_matplotlib.png

このように、matplotlibはデフォルトで日本語が使えない。

解決方法

解決方法としては、追加で日本語版をインストールする必要がある。どうやらanacondaにはなく、pipにしか対応していないらしいので注意が必要。
以下のコマンドを実行する。

pip3 install japanize_matplotlib

なぜjapaneseではなくjapanizeなのかが疑問だが、以下の内容をプログラムに追加する。

import japanize_matplotlib

importするだけで、グラフを生成した時に日本語がしっかりと表示される。

注意点

上記でも記述した通り、importするだけで日本語対応することができる。逆に言えばimportしかしないため、フォーマッターによっては削除されてしまうことがある。その場合は設定を変える必要がある。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1