如何在数据坐标中写入图形外部的注释

2024-10-02 14:19:47 发布

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

我的图形从y=-1y=10

我想在任意位置写一小段文字,比如在x=2000y=5

ax.annotate('MgII', xy=(2000.0, 5.0),  xycoords='data')

现在我想要相同的,但这一次文本必须在图形之外,但在我在数据坐标中标记的确切位置:

ax.annotate('MgII', xy=(2000.0, 10.5),  xycoords='data')

但它随后消失了(记住我的图形从-1变为10)。图形顶部有大量的可用空间

如果我指定的话

xy=(2000.0, 9.999)

然后标签几乎出现在我想要的地方,只是它太靠近图片的上边框。我要它在y=10.5,特别是


Tags: 数据标记文本图形data地方空间标签
2条回答

我只是遇到了同样的问题,并找到了另一个非常简单的解决方案。注释方法的选项:

annotation_clip=False

https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.annotate.html

ax.annotate('MgII', xy=(2000.0, 10.5), xycoords='data', annotation_clip=False)

默认情况下,仅当注释位于轴中时,才会以数据单位绘制注释

您最好使用blended transform

 trans = ax.get_xaxis_transform() # x in data untis, y in axes fraction
 ann = ax.annotate('MgII', xy=(2000, 1.05 ), xycoords=trans)

相关问题 更多 >