所以我有以下情节
来自此代码的
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 :(得分: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()