17. Matplotlibでグラフの描画

1分で簡単!Matplotlibの日本語対応

投稿日:

Matplotlibでは、標準では日本語対応がされておらず、グラフのタイトルやラベルは英語でしか表記できません。日本語を無理に表示しようとすると、文字化けが発生し、「□□□」のような文字が表示されるだけで、正しく表示できません。

 
この記事では、Python初心者でも簡単にできる日本語対応の仕方を解説していきます。

 
対応方法は主に2つがあり、それぞれ環境や目的によってどちらを選択すれば良いかが変わってきます。

対応方法メリットデメリット
1. MatplotlibのFontPropertiesの利用・pipでのインストールが不要で、すぐに対応できる。
・フォントを選択することができる。
・import文以外にもFontPropertiesの設定を記述する必要がある。
2. japanize_matplotlibの利用・import文以外の記述が不要・pipでのインストールが必要になり、Anacondaの環境ではpipでインストールできるようにする必要がある。
・フォントが「IPAexゴシックフォント」に固定される。

 
この章では、まず追加のインストール不要で簡単に対応でき、ビジネスなど様々な利用局面に応じて必要なフォントを選択できる「1. MatplotlibのFontPropertiesの利用」を説明します。

 
その上で必要に応じて選択頂けるよう、「2. japanize_matplotlibの利用」も解説していきたいと思います。それぞれ必要な章をご確認ください。

 
 

MatplotlibのFontPropertiesの利用による日本語対応

まず、グラフのタイトルやラベルを日本語するには、matplotlibのFontPropertiesをインポートします。

from matplotlib.font_manager import FontProperties

 
次にFontPropertiesで日本語のフォントを指定して読み込みます。FontPropertiesは、次のように記述します。

matplotlib.font_manager.FontProperties(fname = フォント,size = フォントサイズ )

 
主な引数は、

引数必須/任意説明
fname必須フォントの保存場所とファイル名を指定
size任意フォントのサイズを指定。

引数fnameは、フォントの保存場所とファイル名を指定します。

 
例えば、WindowsでMSゴシックを指定する場合は、次のように指定します。

fname=r'C:\WINDOWS\Fonts\msgothic.ttc'

また’msgothic.ttc’がMSゴシックのフォントが入っているファイルになりますので、MS明朝にしたい場合は‘msmincho.ttc’、メイリオは‘meiryo.ttc’、メイリオ太字は‘meiryob.ttc’など、ファイル名を変更していくことになります。

 
またMac OSで日本語フォント(Osaka)を使う場合は、次のように指定します。

fname=r'/Library/Fonts/Osaka.ttf'

フォントの保存場所が異なる場合は、適宜変更が必要になります。

 
それでは実際に日本語でグラフのラベルやタイトルを表示してみましょう。ここでは直線のグラフの例を見ていきます。式1として y = 2x + 3を、式2として y = 3x + 1をグラフにします。
 
以下がそのコードになります。

背景色を変更した箇所が今回の日本語対応の為に変更した箇所になります。
 
FontPropertiesクラスで生成されたオブジェクトfpを元に、タイトル、x軸ラベル、y軸ラベルは、引数fontpropertiesにfpを渡し、凡例は引数propにfpを渡すだけです。

 
コードを実行すると、以下のようなグラフが表示されます。

指定されたメイリオの太字でタイトル、x軸ラベル、y軸ラベル、凡例が表示されるようになりました。

 
 

japanize_matplotlibの利用による日本語対応

もう1つの方法として日本語対応されたmatplotlibであるjapanize-matplotlibをインストールして使うという方法があります。
 
フォントは予め指定されているIPAexゴシックフォントしか利用できませんが、一度インストールすると後はインポートするだけで使えるので非常に便利です。
 
但し、インストールはpipでしかできず、Anacondaのcondaではインストールできないので、工夫が必要です。

 
それではまずインストール方法から確認しましょう。
pipでインストールする場合、コマンドラインから以下を入力してください。

pip install japanize-matplotlib

 
Anacondaを利用されている場合は、condaが利用できませんので、次のコマンドを入力して、AnacondaのインストールされているAnaconda環境の場所を確認します。

conda info -e

 
次に以下のコマンドでAnaconda環境をactivateします。

activate “上記のAnaconda環境の場所”

 
するとactivateしたAnaconda環境へpipでインストールできるようになりますので、次のコマンドを入力してください。

pip install japanize-matplotlib

 
以上でインストールが終わりました。

 
そして、先ほどと同じ式1、式2をグラフにしてみましょう。以下がそのコードになります。

背景色を変更した箇所が、今回の日本語対応の為に変更した箇所になります。
 
最初にjapanize_matplotlib をインストールするだけで終わりです。後はフォントサイズを指定していますが、指定しなくてもOKです。
 
コードを実行すると、以下のようなグラフが表示されます。

IPAexゴシックフォントでタイトル、x軸ラベル、y軸ラベル、凡例が表示されています。

このようにして、matplotlibでも日本語でタイトルやラベルを表示することができます。

 
 

-17. Matplotlibでグラフの描画

Copyright© AI-interのPython3入門 , 2019 All Rights Reserved.