非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

PythonのMatplotlibグラフで日本語文字化けを解消する方法

      2018/09/02

PythonにはMatplotlibという強力なグラフ描画ライブラリがあるのですが、デフォルトだと日本語がうまく表示されません。

 

こんな風に日本語で表記しようとしたラベルが豆腐状態になってしまいます。

 

設定を少しいじるだけで日本語表記が可能になりますので、今回はその方法を紹介します。

広告

まずは設定ファイルの場所を確認

まずは以下のソースコードを作って動かします。設定ファイルの場所を示してくれます。

import matplotlib

print(matplotlib.matplotlib_fname())
print(matplotlib.get_configdir())
print(matplotlib.rcParams['font.family'])
 

 

結果はご覧の通り。3行目の[‘sans-serif’]が現在のフォントとなります。1行めが設定ファイルのパス、2行めがユーザー設定するフォルダとなります。

 

ちょっとややこしいですが、1行目の設定ファイルを2行目に示したフォルダにコピーしておきます。コピーした方のファイルを修正することで設定変更します。

 

Matplotlibで使用可能な日本語フォントを確認

次にMatplotlibで使用可能な日本語フォントを確認します。次のソースコードを作って動かしましょう。

import matplotlib

fonts = fm.findSystemFonts()
for font in fonts:
  print(fm.FontProperties(fname=font).get_name())
 

 

フォント一覧がリストアップされます。この中から日本語フォントを探します。とりあえず今回はこの中から「TakaoPGothic」を選びました。

 

設定ファイルを編集する

先ほどコピーした方の設定ファイルを編集します。

199行目あたりに「font.family」という行があるので、コメント「#」を外して、フォント名を変えます。今回は「TakaoPGothic」としました。

 

先ほどの設定情報を出力するプログラムを改めて動かしてみましょう。ご覧の通り1行目の設定ファイルの場所が変わったことと、3行目のフォント名が設定したフォント名に変わっていることがわかります。

 

グラフを描画してみる!

改めてグラフを描画させてみると、ご覧の通り日本語がちゃんと表示するようになりました。

 

広告

 - Python