HOWTO · Matplotlib
Cómo colocar la leyenda fuera de la trama en Matplotlib
Este tutorial introduce cómo colocar la leyenda fuera de la trama en Matplotlib.
La leyenda puede ser colocada fuera de la trama en Matplotlib usando bbox_to_anchor. bbox significa bounding box que acomoda la leyenda.
plt.legend(bbox_to_anchor=(1.05, 1))
Coloca la leyenda en la posición (1.05, 1) en la coordenada de los ejes. (0, 0) es la esquina inferior izquierda, y (1.0, 1.0) es la esquina superior derecha de la coordenada del eje.
El tamaño real y la posición del cuadro delimitador de la leyenda se definen con el parámetro 4-tuple de bbox_to_anchor y loc en la legend plt.
plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)
El width y la height son el ancho y la altura del cuadro de la leyenda, y (x0, y0) es la coordenada del lugar del cuadro delimitador.
El valor de loc podría ser un número o una cadena que tiene la relación que se muestra a continuación,
| Número de Loc | Loc String |
|---|---|
| 0 | best |
| 1 | upper right |
| 2 | upper left |
| 3 | lower left |
| 4 | lower right |
| 5 | right |
| 6 | center left |
| 7 | center right |
| 8 | lower center |
| 9 | upper center |
| 10 | center |
plt.legend(bbox_to_anchor=(1.05, 1.0, 0.3, 0.2), loc="upper left")
El código anterior significa que el cuadro de la leyenda está posicionado en la coordenada de los ejes (1.05, 1.0) que tiene el ancho de 0.3 y la altura de 0.2, donde (1.05, 1.0) es la coordenada de la esquina superior izquierda del cuadro delimitador de la leyenda.
Ejemplo de caja_de_anclas
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
plt.legend(bbox_to_anchor=(1.05, 1.0), loc="upper left")
plt.tight_layout()
plt.show()
plt.tight_layout() hace que las subtramas encajen bien en la figura.
La caja de la leyenda sería recortada si no se llama tight_layout().
bbox_extra_artists y bbox_inches para evitar que la caja de la leyenda sea recortada
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
lg = plt.legend(bbox_to_anchor=(1.05, 1.0), loc="upper left")
plt.savefig(
"example.png", dpi=300, format="png", bbox_extra_artists=(lg,), bbox_inches="tight"
)
bbox_extra_artistas especifica la lista de Artist que se tendrá en cuenta cuando se calcule la ajustada bbox.
Si la bbox_inches está configurada para ser tight, calculará la bbox apretada de la figura.