2016-05-14 8 views
1

(私の問題に似たいくつかの質問がありますが、ほとんどすべてのそれらのは、伝説と注釈ボックスをテキストに関連していた。)ループを使用してmatplotlibのテキスト

ための固定位置を設定し、私は特定のを見せたいです32属性の情報:左のヒストグラムと右の統計。私はすべての属性のループを作成するときに問題が異なる範囲与えられた、ある

#Histogram 
sns.distplot(n1, kde=True)#fit=stats.beta) 
plt.title('Histogram') 
plt.xlabel('Duration') 
plt.xticks(np.arange(0, max(n1)+1, 0.5)) 

#Statistics (There are 13 in total) 
plt.text(1.85,5,'Standard Time: %6.4f'%(ST.iloc[j,0])) 
plt.text(1.85,5,'Median: %6.4f'%(medmed)) 
plt.text(1.85,4.65,'Variance from ST: %6.2f '%(Totvarval)) 
plt.text(1.85,4.3,'Standard Deviation: %6.4f'%(np.std(n1))) 

:それは、私はXを設定し、テキスト位置のyの本当に簡単だし、それはそれだだけで一つの属性に対処

それぞれの、テキストは比較的、このような結果を引き起こして変更を体位:

Example for 2 attributes

は私がコーディネートを修正する方法があるはずです知っているが、私は、マニュアルでそれを見つけることができませんでした。

+0

http://matplotlib.org/users/text_props.htmlを助けるかもしれませんあなた – daryl

+0

http://matplotlib.org/users/annotations_intro.html – tacaswell

答えて

1

pyplot.textに渡された座標データが(the documentationが指摘するように)座標あります。これは、プロット軸のXとYの範囲に応じて、テキストの絶対座標(ピクセル)が決まることを意味します。あなたは軸そのものではなく、データに対する位置を指定したい場合は、あなたの座標を変換する必要があり、このような例:

x0, xmax = plt.xlim() 
y0, ymax = plt.ylim() 
data_width = xmax - x0 
data_height = ymax - y0 
plt.text(x0 + data_width * 1.5, y0 + data_height * 0.5, 'Some text') 
+0

「注釈」とFigureまたはAxes単位のいずれかを使用するほうがはるかに優れています。これにより、mplはあなたのために数学を行い、パン/ズームすると同じ場所にとどまります。 – tacaswell

+0

良いアイデアのように聞こえます。あなたは@tcaswellという答えを書くべきです! – tjollans

関連する問題