gpt4 book ai didi

matplotlib - 在 matplotlib 中获取图例的宽度

转载 作者:行者123 更新时间:2023-12-02 23:30:53 34 4
gpt4 key购买 nike

我曾经使用以下方法来获取图形坐标中图例的宽度:

fig = plt.figure()
ax = fig.add_axes((0.1, 0.1, 0.8, 0.8))
ax.scatter(xdata, ydata)
legend = ax.legend(loc="lower left", borderaxespad=0)
legend_width = legend.get_window_extent().inverse_transformed(fig.transFigure).width

我最近将 matplotlib 更新到版本 1.5.1。转换前宽度(和高度)始终为 1.0,转换后它们是非常小的值(宽度=0.0015625,高度=0.0020833),在图形坐标中没有意义。

现在有不同的方法来获取图例宽度吗?或者这是一个错误?

谢谢!

最佳答案

您正在受到性能优化的影响。我们现在尽可能推迟实际渲染图形。在大多数交互式情况下,这意味着延迟渲染,直到 GUI 框架第一次重新绘制为止。图例的确切大小是在绘制时计算出来的,因此当您询问窗口范围时,您将得到占位符值。

要解决此问题,您可以通过以下方式强制渲染

fig.canvas.draw()

一般来说,您不想使用get_window_extent。它依赖于 DPI,可能会导致一些非常奇怪且难以追踪的错误。返回的值取决于内部细节,这些细节不一定是面向用户的,一旦您将输出保存在某个地方,您就可以(将)不同步。

关于matplotlib - 在 matplotlib 中获取图例的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988884/

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