我正在尝试将文本添加到与图例相邻的位置。这是我尝试过的:
import matplotlib.pyplot as plt
x = y = [1,2,3,4,5]
fig, ax = plt.subplots()
ax.plot(x,y)
leg = ax.legend(['line 1'], loc=6, frameon=False)
plt.draw()
p = leg.get_window_extent()
ax.annotate('Annotation Text', (p.p0[0], p.p1[1]), (p.p0[0], p.p1[1]),
xycoords='figure pixels', zorder=9)
plt.show()
这正是 stackoverflow 问题 Get Matplotlib legend location? 中包含的脚本。 。当我运行完全相同的脚本时,会产生不同的结果。当我运行此脚本时,字符串“注释文本”出现在图的左下角。
郑重声明,我运行此脚本时 p 的值为 Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0)
。
如何获得图例的坐标,最好是坐标轴坐标,即。轴.transAxes ?
我正在使用 matplotlib 1.5.0 和 python 2.7
最佳答案
您可以使用inverse_transformed
将图形像素转换为轴分数:
import matplotlib.pyplot as plt
x = y = [1,2,3,4,5]
fig, ax = plt.subplots()
ax.plot(x,y)
leg = ax.legend(['line 1'], loc=6, frameon=False)
fig.canvas.draw()
p = leg.get_window_extent().inverse_transformed(ax.transAxes)
ax.annotate('Annotation Text', (p.p0[0], p.p1[1]), xycoords='axes fraction')
这将产生如下图:
我还使用 matplotlib 1.5.0 和 python 2.7,无论脚本执行多少次,我总是得到相同的绘图。
关于python - 为什么无法在图例旁边进行注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524210/