bbox_to_anchor()函数的论证

时间:2016-12-01 11:03:50

标签: python matplotlib legend-properties

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,它将图例置于任意位置。我无法理解函数的前两个论证,所有的谎言都是标准化的轴参数。任何人都可以解释它们是什么以及如何操纵它们吗?

2 个答案:

答案 0 :(得分:3)

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

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

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

ax.legend(loc='upper right')

enter image description here

但如果您希望图例的右上角位于轴的中间左侧,则可以使用bbox_to_anchor=(0, 0.5)

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

enter image description here

答案 1 :(得分:1)

尝试通过玩弄参数来理解 -

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

给出了这个 - enter image description here

它将图例放在左下角。现在让我们说我想要它在右上角;我会做的

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

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

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

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

例如,如果我希望我的图例框位于右下方,我会将这些参数设置为(1,0)。

设置0到1之间的数字会相应地操纵位置。

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

希望这可以解决它!