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

2024-06-26 18:04:41 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有下面的情节

来自这个代码

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值增加/减少,我就必须调整上面所有的注释!相反,我想如果我能使我的文字固定,使其链接,并始终在左上角

希望有人能帮我


Tags: 代码infornppltmean文字xy
1条回答
网友
1楼 · 发布于 2024-06-26 18:04:41

你用的是一种很不寻常的方式。顾名思义,它是用来注释数据点的,因此默认情况下它使用数据坐标作为输入。
但这是可以改变的。有关完整的概述,请参阅the documentation

这里的想法是用“轴分数”来指定坐标。也就是说,轴的左下角对应于(0,0),右上角对应于(1,1)。要在annotate中指定轴坐标,请使用附加的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()

相关问题 更多 >