見出し画像

【python】matplotlibで日本語を使用する手順【fontダウンロード不要】

概要

matplotlibで日本語が使えるようにする(下図参照)

画像1

手順

1. matplotの設定ファイル(matplotlibrc)の場所を探す
2. matplotlibrcファイルがある場所まで移動する
3. フォントの指定を行っている場所を書き換える
4. matplotlibrcを再読み込みして、設定を反映させる
5. 日本語が正しく表示されるかチェックする

==================================================

matplotの設定ファイル(matplotlibrc)の場所を探す

以下のプログラムを実行する

import matplotlib as mpl
print("設定ファイルの場所\n\t", mpl.matplotlib_fname())

出力

設定ファイルの場所
	 C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\matplotlib\mpl-data\matplotlibrc

pythonの環境によって異なりますが、私の場合は、「C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\matplotlib\mpl-data」に「matplotlibrc」という設定ファイルがあるようです

matplotlibrcファイルがある場所まで移動する

「エクスプローラ」を起動、下図の場所に、
コンソール出力のPATH部分(matplotlibrcを除く)をコピペ > 【Enterキー】を押す

エクスプローラで移動

marplotlibrcを書き換える

matplotlibrcファイルの上で右クリック > 「プログラムから開く」をクリック

ファイル上で右クリック_プログラムから開く

「メモ帳」を選択して、「OK」ボタンを押す

メモ帳_OK

以下の部分を書き換える
【変更前】         【変更後】
#font .family : sans-serif > font.family : MS Gothic

matplotlibrc_変更前

matplotlibrcを再読み込みして、設定を反映させる

以下のコードを実行する

import matplotlib as mpl
mpl.font_manager._rebuild()

これで設定が反映される

日本語が正しく表示されるかチェックする

以下のコードを実行する

import matplotlib.pyplot as plt
plt.title("日本語ダヨー")
plt.xlabel("X accel")
plt.ylabel("y軸ダヨー")
plt.plot([1],label="ほげほげ")
plt.legend()
plt.show()

実行結果

日本語

これで日本語が描画できるようになる

参考までに

matplotlibのキャッシュファイルの場所の確認

以下のコードを実行する

import matplotlib as mpl
print("キャッシュファイルの場所\n\t", mpl.get_cachedir())

コンソール出力

キャッシュファイルの場所
	 C:\Users\user\.matplotlib

どうやら、ユーザフォルダ直下の.matplotlibにあるもよう

キャッシュファイル

複数のフォントを指定したい

キーワード引数"fontname"や"prop"で個別に指定することが可能

import matplotlib.pyplot as plt
plt.title("日本語ダヨー", fontname="MS Gothic")
plt.xlabel("エックスアクシス", fontname="MS Mincho")
plt.ylabel("y軸ダヨー", fontname="HGGothicM")
plt.plot([1])
plt.legend(["ほげほげ"], prop={"family":"HGMinchoE"})
plt.show()

結果

複数の異なるフォントを指定する

==================================================

参考にしたサイト

Matplotlibで簡単に日本語を表示する方法(Windows)
https://gammasoft.jp/blog/matplotlib-japanese-fonts/

- Qiita : matplotlibで日本語
https://qiita.com/yniji/items/3fac25c2ffa316990d0c

いいなと思ったら応援しよう!