获取Matplotlib图例位置?

2024-10-01 09:31:45 发布

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

我想得到matplotlib图例的位置(轴数据或比例的x,y)。我试过以下方法:

l = ax.legend(...)
l.get_window_extent()
l.legendPatch.get_bbox().inverse_transformed(ax.transAxes) 

我的目标是使用图例的位置添加一个文本框,旁边有附加信息。在


Tags: 数据方法getmatplotlibaxwindowextent比例
2条回答

在这行代码上

leg = ax.legend(['line 1'], loc=6, frameon=False)

使loc=0这将使您的绘图保持在与绘图图不重叠或重叠最少的最佳位置。在

获取图例位置的方法取决于图例以及何时访问它。在

似乎最好是在绘制绘图后,即调用:

plt.draw()

在之后访问legend object position,这将返回图形像素,您可以稍后使用。在

至少有两种方法可以访问图例位置:

  1. 一种通用的.get_window_extent()方法
  2. 如果图例有一个frame-through.get_frame().get_bbox().bounds方法

显然,如果图例没有框架,则首选第1种方法:-)

你可以玩这两个,看看如何最好地处理每一个。在

下面是一个如何做到这一点的示例:

^{pr2}$

这就产生了:

legend annotated

相关问题 更多 >