matplotlibを使って、図の中にtext(テキスト)を配置しました。
すると、文字が重なってしまいました。
試行錯誤していたら2つの対処方法がわかったので記事化します!
上記の図は、かなりテキストが重なり合ってしまっていると言えます。
実現したいこと
実現したいことは、値(点)が近すぎて、テキストが重なり合ってしまっても、テキストの内容を確認できること。
そこで私は、以下の2つの方法を見つけました。
1. 画像サイズ(画像ファイルに保存する場合)を変更する
2. figureを使って該当箇所を拡大してみる
実現方法
画像サイズ(画像ファイルに保存する場合)を変更する
Pythonにて以下のようなコードを書いて、画像サイズを変更します。
import matplotlib.pyplot as plt
plt.figure(figsize=(20, 20), dpi=100)
上記の図は、plt.figureを実行したあとの画像です。
実際の画像は、すべてのプロットした点およびテキストが含まれますが、
画像サイズが大きくなってしまったため、画像の一部を記載しています。
ソースコード全体は以下のようになります。
#図の中に日本語を表示する
%matplotlib inline
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
from numpy.random import *
#from adjustText import adjust_text
#日本語が使えるフォントの場所を指定する
#DLしたパスを指定. /font以下でなくても良い
font_path = '/Users/oreore/develop/python/sample/ipamp.ttf'
font_prop = FontProperties(fname=font_path)
#適当な位置に点をプロットする
seed(0)
x_data = normal(100,10, size = 100) # 平均100、標準偏差10の正規分布
y_data = normal(100,2, size = 100) # 平均100、標準偏差2の正規分布
#テキストを適当に設定
text_data = []
for i in range(100):
str = "ホゲホゲテキスト %d" % i
text_data.append(str)
#デフォルトの画像サイズだと図の中のテキストが重なってしまうので、画像サイズを広げる
plt.figure(figsize=(20, 20), dpi=100)
plt.plot(x_data, y_data, 'bo')
texts = [plt.text(x_data[i], y_data[i], text_data[i], ha='center', va='center' , fontproperties=font_prop) for i in range(len(x_data))]
#adjust_text(texts)
plt.title("タイトル", fontproperties=font_prop)
plt.xlabel("ラベル-X", fontproperties=font_prop)
plt.savefig('bar_basic.png')
plt.show()
figure(ダイアログ?)を使って該当箇所を拡大してみる
figureの虫メガネの部分の押して、該当箇所を拡大する。
(1)虫めがね部分をクリック前
(2)虫めがね部分をクリックして、範囲を指定したあと。
拡大してテキスト部分を確認できます。
まとめ
以上、matplotlibで図の中のテキストが重なりあってしまう場合の対処方法でした。
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |