Como colocar a lenda fora do terreno em Matplotlib
-
Exemplo de
bbox_to_anchor
-
bbox_extra_artists
ebbox_inches
para evitar que a Legend Box seja cortada
A legenda poderia ser colocada fora do terreno no Matplotlib utilizando bbox_to_anchor
. bbox
significa caixa de delimitação
que acomoda a legenda.
plt.legend(bbox_to_anchor=(1.05, 1))
Ela coloca a legenda na posição (1.05, 1)
na coordenada dos eixos. (0, 0)
é o canto inferior esquerdo, e (1.0, 1.0)
é o canto superior direito da coordenada dos eixos.
O tamanho real e a posição da caixa delimitadora da legenda são definidos com o parâmetro de 4 tubos de bbox_to_anchor
e loc
na plt.legend
.
plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)
A width
e height
são a largura e a altura da caixa de legenda, e (x0, y0)
é a coordenada do loc
da caixa delimitadora.
O valor de loc
poderia ser o número ou string que tem a relação a seguir,
Número 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")
O código acima significa que a caixa de legenda é posicionada na coordenada dos eixos (1.05, 1.0)
que tem a largura de 0.3
e a altura de 0.2
, onde (1.05, 1.0)
é a coordenada do canto superior esquerdo da caixa de delimitação da legenda.
Exemplo de bbox_to_anchor
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()
O plt.tight_layout()
faz com que os subquadros se encaixem bem na figura.
A caixa de legendas seria cortada se tight_layout()
não fosse chamada.
bbox_extra_artists
e bbox_inches
para evitar que a Legend Box seja cortada
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"
)
A lista de [bbox_extra_artists
especifica a lista de Artist
que será levada em consideração quando se calcular a bbox apertada.
Se a bbox_inches
estiver definida para ser tight
, ela calculará a caixa apertada da 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