Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【python3, matplotlib】テキストをプロットした点の横に打ちたい + 位置の自動調整

今までやってたのはかなり力技だった

データがxとyというリストに入ってる
labelsがそれぞれのサンプル点の横に打ちたいラベル

import matplotlib.pyplot as plt
for i, text in enumerate(labels):
 plt.text(x[i]+4, y[i] +0.2, text, fontsize=25)
こんな感じ
ただ、サンプル点が近すぎると、ラベルが重なってそれを調整する必要があった



■ 参考 :複数のplt.textで重なる文字をなんとかできる。

adjustText というパッケージを使えば楽に調整をしてくれるらしい
デフォルトでは入っていないので、condaでインストールする

conda install adjustText
使い方は記事に書いてある通り
texts = [plt.text(x[i], y[i], '%s' %labels[i], ha='center', va='center', fontsize=18) for i in range(len(labels))]
adjust_text(texts)
みたいな感じでOK

矢印をつけるオプションも使ってみたけど、今回はサンプル点とラベルの距離が近すぎて、矢印いらなかった

ランキング参加中です

↓クリックしていただけると嬉しいです〜