bbox_to_anchor和loc在matplotlib中

use*_*208 27 python matplotlib

我遇到了matplotlib使用关键字loc和自定义图例位置的代码bbox_to_anchor.例如 :

fig.legend([line1, line2], ['series1', 'series2'], bbox_to_anchor=[0.5, 0.5], 
           loc='center', ncol=2)
Run Code Online (Sandbox Code Playgroud)

我已经看到上面的变化bbox_to_anchor用于之后loc.

我理解使用bbox_to_anchorloc分开的目的.但是,在同一传奇规范中使用两者有什么好处吗?根据我的理解和用法,在我看来,如果bbox_to_anchor指定,那么loc参数几乎不在乎.

谁能证实这一点?我没有看到任何关于此的文档.

Gab*_*iel 38

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')
Run Code Online (Sandbox Code Playgroud)

第一个命令将边界框的中心放在轴坐标0.5,0.5处.第二个将边界框的中心左边缘放在相同的坐标处(即将图例向右移动).最后,第三个选项将边界框的中心右边缘放在坐标处(即将图例向左移动).


Imp*_*est 19

@Gabriel的解释有点误导.bbox_to_anchor=[x0, y0]将创建一个边界框左下角的位置角落[x0, y0].边界框的扩展为零 - 相当于bbox_to_anchor=[x0, y0, 0, 0].然后,图例将被放置在此框的"内部",并根据指定的loc参数重叠.因此,loc指定图例所在的框内.

另请参阅此问题'bbox_to_anchor'的4元素元组参数在matplotlib中的含义是什么?