※この記事にはプロモーションが含まれています。

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の利用」も解説していきたいと思います。それぞれ必要な章をご確認ください。

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
GWに新スキルを習得しよう!セールは4月21日まで!GW前の大セール中!

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を渡すだけです。

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

Pythonのmatplotlibで日本語の文字化けを対応し、jupyter notebookで日本語のフォントがきれいに表示された折れ線グラフのイメージ(windows 10, mac編)

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

 
 

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

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

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

pip install japanize-matplotlib

pipの詳しい説明は「Pythonでの外部ライブラリの追加インストール方法」を参照ください。

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

conda info -e

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

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

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

pip install japanize-matplotlib

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

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

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

Pythonのmatplotlibで日本語の文字化けを対応し、jupyter notebookで日本語のフォントがきれいに表示された折れ線グラフのイメージ(windows 10, mac編)

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

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

 
 

 
 
 
最後に...


Pythonの学習においては、実際に様々なプログラムを書いて試していくことが非常に重要です。Pythonについて、さらに詳しく学ばれたい方は、以下の私のUdemy講座をご検討いただければ幸いです。


Pythonを用いて世界中のWebサイトから自動的にデータ収集する方法を、基礎からていねいに学ぶことができます。Pythonを初めて学ばれた方も、最初に取り組みやすい内容になっています。


>> Pythonによるビジネスに役立つWebスクレイピング
発売数8,500本突破を記念して大セール中!期間限定になりますのでお早めに。
Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)講座の画面

既に8,500名以上の方に受講頂き、大変好評です。またコースに満足いただけない場合でも、30日返金保証があるので安心です。

期間限定の割引クーポンは、こちらから!
>> Pythonによるビジネスに役立つWebスクレイピング
   
   





-17. Matplotlibでグラフの描画

Copyright© ビジPy , 2024 All Rights Reserved.