2017-03-03 58 views
0

所以我有這個以下情節添加文本

它來源於此代碼

for j in range(a.shape[1] // 2): 
z = np.polyfit(a[:, 2* j], a[:, 2 * j + 1], 1) 
p = np.poly1d(z) 
e[j]=z[0] 
plt.plot(a[:, 2* j],p(a[:, 2* j])) 
g.show() 

的代碼可能看起來很複雜,但這裏沒有那這個問題。問題是劇情內的文字。我已經寫了使用註釋

plt.annotate('Mean stiffness k', xy=(3,7),fontsize=8, fontweight='semibold', fontstyle='italic')  
plt.annotate(Stiffness, xy=(6,7)) 
plt.annotate('N/m', xy=(7.5,7)) 
plt.annotate('Mean modulus E', xy=(3,6.5),fontsize=8, fontweight='semibold', fontstyle='italic')  
plt.annotate(Emodulus, xy=(5.9,6.5)) 
plt.annotate('N/m^2', xy=(8.9,6.5)) 

和最新討厭我的是,每次我有不同的數據集,其中y和情節增加x值/減小的文字,我要調整所有的以上註釋!相反,我想如果我以某種方式可以使我的文本固定,所以它的鏈接和始終在左上角。

希望有人能幫助我!

+0

您能否在第一個代碼示例中修復縮進。如果你會這樣使用它會給你一個錯誤。 – jotasi

回答

0

您正在以一種相當不尋常的方式使用註釋。顧名思義,它意味着用於註釋數據點,所以默認情況下它使用數據座標作爲輸入。
但是這可以改變。有關完整的概述,請參閱the documentation

這裏的想法是指定「軸分數」中的座標。也就是說,軸的左下角對應於(0,0),右上角對應於(1,1)。要在批註中指定座標軸,請使用附加的xycoords="axes fraction"參數。

import matplotlib.pyplot as plt 
plt.plot([8,154,66]) 
plt.annotate('Mean stiffness k', xy=(.3,.7), xycoords="axes fraction") 
plt.show()