我遇到了使用关键字matplotlib
和loc
自定义图例位置的bbox_to_anchor
代码。例如:
fig.legend([line1, line2], ['series1', 'series2'], bbox_to_anchor=[0.5, 0.5],
loc='center', ncol=2)
我已经看到上面的变体bbox_to_anchor
之后使用了loc
。
我理解分别使用bbox_to_anchor
和loc
的目的。但是,在同一传奇规范中使用两者有什么好处吗?根据我的理解和用法,在我看来,如果指定了bbox_to_anchor
,那么loc
参数几乎不关心。
任何人都可以证实吗?我没有看到任何关于此的文件。
答案 0 :(得分:33)
当bbox_to_anchor
和loc
一起使用时,loc
参数将告知matplotlib图例边界框的哪一部分应放在bbox_to_anchor
的参数处。例如(我稍微简化了命令),下面的三个选项将为您的图例生成不同的位置,
fig.legend([line1], ['series1'], bbox_to_anchor=[0.5, 0.5], loc='center')
fig.legend([line1], ['series1'], bbox_to_anchor=[0.5, 0.5], loc='center left')
fig.legend([line1], ['series1'], bbox_to_anchor=[0.5, 0.5], loc='center right')
第一个命令将边界框的中心放在轴坐标0.5,0.5处。第二个将边界框的中心左边缘放在相同的坐标处(即将图例向右移动)。最后,第三个选项将边界框的中心右边缘放在坐标处(即将图例向左移动)。
答案 1 :(得分:12)
对@Gabriel的解释有点误导。 bbox_to_anchor=[x0, y0]
会在位置[x0, y0]
处创建一个边框左下角。边界框的扩展为零 - 等于bbox_to_anchor=[x0, y0, 0, 0]
。然后,图例将被放置在此框的“内部”,并根据指定的loc
参数重叠。因此loc
指定图例所在框内的位置。
另请参阅此问题What does a 4-element tuple argument for 'bbox_to_anchor' mean in matplotlib?