Matplotlib,如何在数据坐标系中绘制图形之外的注释?

Mep*_*sto 16 matplotlib

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

我想在任意位置写一小段文字,比如x = 2000,y = 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,特别是.

tac*_*ell 28

ax.annotate('MgII', xy=(2000.0, 10.5), xycoords='data', annotation_clip=False)
Run Code Online (Sandbox Code Playgroud)

默认情况下,只有数据单位中的注释才会在轴中绘制.

你可能最好使用混合变换:

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