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,它将图例放置在任意位置。我无法理解函数的前两个论证,所有的公式都说是归一化的轴参数。有谁能解释一下他们是什么以及如何操纵他们?
发布于 2016-12-01 12:37:35
它不是一个函数,而是一个关键字参数。
摘要:您可以使用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))

发布于 2016-12-01 11:35:26
试着用这些参数来理解-
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),它会在中间的某个位置,这个定位发生在轴上。这就是为什么在文档里这样写的原因。
希望这能把它弄清楚!
https://stackoverflow.com/questions/40908983
复制相似问题