根据轴限制在绘图上添加文本

时间:2017-03-03 08:21:46

标签: python matplotlib text plot

所以我有以下情节

来自此代码的

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值的图增加/减少,我必须调整所有上述注释!相反,我想,如果我以某种方式可以使我的文本固定,所以它的链接和总是在左上角。

希望有人可以帮助我!

1 个答案:

答案 0 :(得分: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()