bbox_to_anchor() 函数的参数

Arguements of bbox_to_anchor() function

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)

fig = plt.figure()
ax = plt.subplot(111)

for i in xrange(5):
    ax.plot(x, i * x, label='$y = %ix$' % i)

ax.legend(bbox_to_anchor=(1.1, 1.05))

plt.show()

在上面的代码中,我遇到了将图例置于任意位置的函数 bbox_to_anchor。我无法理解该函数的前两个论点,所有文献都说是归一化轴参数。任何机构都可以解释它们是什么以及如何操纵它们吗?

尝试通过调整参数来理解 -

ax.legend(bbox_to_anchor=(0,0))

给出这个 -

它将图例放在左下角。现在假设我想要它在右上角;我会做

ax.legend(bbox_to_anchor=(1,1))

并且会得到 - 所以基本上,这两个参数操纵图例框 相对于它们出现的位置的 位置 -

如果我将第一个数字设置为 0,则图例将位于最左侧。如果我把它设置为 1,它就会在最右边。

如果我将第二个数字设置为 0,图例框将放置在最底部,将其设置为 1 将放置在顶部。

例如,如果我希望我的图例框出现在右下角,我会将这些参数设置为 (1,0)。

设置一个介于 0 和 1 之间的数字将相应地操纵位置。

因此,如果我设置 (0.5,0.5),它将位于中间的某个位置,并且此定位发生在 w.r.t 轴上。这就是为什么它在文档中这样写的原因。

希望一切顺利!

它不是一个函数,而是一个关键字参数。

总结:您使用 loc 指定图例的一个角,并可选择 bbox_to_anchor 指定该角的位置。默认情况下,图例的指定角将放置在轴的同一角上。

例如 loc='upper right' 只会将图例的右上角放在轴的右上角:

ax.legend(loc='upper right')

但是如果你想让图例的右上角在坐标轴的左中,你可以使用bbox_to_anchor=(0, 0.5):

ax.legend(loc='upper right', bbox_to_anchor=(0, 0.5))