python - with - bbox_to_anchor y loc en matplotlib




no handles with labels found to put in legend. (2)

Cuando bbox_to_anchor y loc se usan juntos, el argumento loc informará a matplotlib qué parte del cuadro delimitador de la leyenda se debe colocar en los argumentos de bbox_to_anchor . Por ejemplo (he simplificado un poco el comando), las tres opciones a continuación producirán diferentes ubicaciones para su leyenda,

 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')

El primer comando pondrá el centro del cuadro delimitador en las coordenadas de los ejes 0.5,0.5. El segundo colocará el borde central izquierdo del cuadro delimitador en las mismas coordenadas (es decir, desplazará la leyenda hacia la derecha). Finalmente, la tercera opción pondrá el borde central derecho del cuadro delimitador en las coordenadas (es decir, desplazará la leyenda hacia la izquierda).

matplotlib código matplotlib que personaliza la ubicación de la leyenda usando las palabras clave loc y bbox_to_anchor . Por ejemplo :

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

He visto una variación de la anterior donde se usa bbox_to_anchor después de loc .

Entiendo el propósito de usar bbox_to_anchor y loc separado. Sin embargo, ¿hay algún beneficio de usar ambos en la misma especificación de leyenda? Desde mi entendimiento y uso, me parece que si se especifica bbox_to_anchor , entonces el parámetro loc es prácticamente no importa.

¿Alguien puede confirmar esto? No veo ninguna documentación al respecto.


La explicación de @Gabriel es un poco engañosa. bbox_to_anchor=[x0, y0] creará un cuadro delimitador con la esquina inferior izquierda en la posición [x0, y0] . La extensión del cuadro delimitador es cero: es equivalente a bbox_to_anchor=[x0, y0, 0, 0] . La leyenda se colocará 'dentro' de este cuadro y se superpondrá de acuerdo con el parámetro de loc especificado. Así que loc especifica el lugar donde se encuentra la leyenda.

También vea esta pregunta ¿Qué significa un argumento de tupla de 4 elementos para 'bbox_to_anchor' en matplotlib?





matplotlib