gpt4 book ai didi

python - 如何在 matplotlib 中获取图例位置

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:15 28 4
gpt4 key购买 nike

我正在尝试获取 matplotlib 中的图例位置。似乎 Legend.get_window_extent() 应该提供这个,但无论图例位于何处,它都会返回相同的值。这是一个例子:

from matplotlib import pyplot as plt

def get_legend_pos(loc):

plt.figure()
plt.plot([0,1],label='Plot')
legend=plt.legend(loc=loc)

plt.draw()

return legend.get_window_extent()

if __name__=='__main__':

# Returns a bbox that goes from (0,0) to (1,1)
print get_legend_pos('upper left')

# Returns the same bbox, even though legend is in a different location!
print get_legend_pos('upper right')

获取图例位置的正确方法是什么?

最佳答案

您需要将 plt.draw() 替换为

plt.gcf().canvas.draw()

或者,如果您有图形句柄,fig.canvas.draw()。这是必需的,因为图例位置仅在绘制 Canvas 时确定,在此之前它只是位于同一位置。

使用 plt.draw() 是不够的,因为绘制图例需要来自正在使用的后端的有效渲染器。

关于python - 如何在 matplotlib 中获取图例位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747614/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com