【3分で解決】matplotlib(Python)の日本語の文字化けをフォントを指定して解決!

  • 2019年9月20日
  • 2023年11月26日
  • Python
  • 971view

Pythonのライブラリーであるmatplotlibを使ってグラフに日本語のラベルを設定しようとしたら、文字化けが発生した。

■文字化けが発生しているグラフ

英文字部分は、文字化けしていないが日本語の部分が□で表示されてしまっている。

 

原因は日本語に対応していないフォントだった

matplotlibのデフォルトのフォントが日本語に対応していないため。

フォントに日本語のデータが無かったために□で表示されてしまっていたようです。

 

解決方法はFontPropertiesを使うこと

matplotlibの「FontProperties」を使って、日本語対応しているフォントを指定する。

手順は、以下の通り。

 

日本語のフォントをダウンロードする

IPAフォントのサイトに行き、日本語フォントをダウンロードします。

IPAフォントのサイト

 

ダウンロード場所は、PCの任意のディレクトリでよいです。

 

フォントを読み込む

Pythonのコードにフォントを読み込む処理を

以下のようなコードを書いて、実装します。

from matplotlib.font_manager import FontProperties
font_path = '/Users/dokoka/ipamp.ttf' #任意のディレクトリを指定する
font_prop = FontProperties(fname=font_path)

コードの全体像は以下の通り

#グラフに日本語を表示する

%matplotlib inline

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
from numpy.random import *


#日本語が使えるフォントの場所を指定する
#DLしたパスを指定. /font以下でなくても良い
font_path = '/Users/dokoka/ipamp.ttf'
font_prop = FontProperties(fname=font_path)



#散布図を書く
x_data = normal(50,10, size = 10)   # 平均50、標準偏差10の正規分布
y_data = normal(100,2, size = 10)   # 平均100、標準偏差10の正規分布

plt.title("タイトル", fontproperties=font_prop)
plt.scatter(x_data,y_data )
plt.xlabel("ラベル-X", fontproperties=font_prop)

 

その結果、無事に日本語が表示されました!

 

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア
最新情報をチェックしよう!
>プログラミングスクール検索・比較表サイト

プログラミングスクール検索・比較表サイト

ワンクリック、さらに詳細に条件を指定してプログラミングスクールの検索ができます。さらに比較表により特徴を細かく比較できる!

CTR IMG