Cómo colocar la leyenda fuera de la trama en Matplotlib
-
Ejemplo de
caja_de_anclas
-
bbox_extra_artists
ybbox_inches
para evitar que la caja de la leyenda sea recortada
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.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook