Localização da legenda do matplotlib

Localização da legenda do matplotlib

Matplotlib é um ótimo pacote de visualização em Python para gráficos de matriz 2D. A lenda é uma seção que define as partes do gráfico. Legend () é um método no pacote matplotlib que está sendo usado para exibir uma legenda nos gráficos. O parâmetro loc no método legend () pode ser utilizado para indicar a colocação da lenda. Loc = "melhor" é o valor padrão (canto superior esquerdo). A legenda está localizada na posição apropriada das figuras pelos parâmetros melhores candidatos superior direito, superior esquerdo, inferior esquerdo, direito, inferior direito, centro esquerdo, inferior centrado, centro direito e superior. As lendas da trama fornecem um contexto visual pela implementação do bem aos componentes da plotagem.

Neste artigo, vamos examinar como personalizar o posicionamento e a estética da lenda em matplotlib.

Localização da lenda

O termo 'loc' como um parâmetro pode ser utilizado para indicar a colocação da lenda. Nesse caso, vemos o método de como localizamos a lenda.

importar matplotlib.pyplot como plt
importar numpy como np
fig, ax_dict = plt.Subplot_mosaic ([['top', 'top'], ['Bottom', 'Blank']],
vazio_sentinel = "em branco")
ax_dict ['top'].plotagem ([2, 3, 4], Label = "Label1")
ax_dict ['top'].plotagem ([4, 3, 2], Label = "Label2")
ax_dict ['top'].legenda (bbox_to_anchor = (0., 1.02, 1., .102), loc = 'inferior esquerdo',
ncol = 2, mode = "expand", borderaxespad = 0.)
ax_dict ['Bottom'].plotagem ([2, 3, 4], Label = "Label1")
ax_dict ['Bottom'].plotagem ([4, 3, 2], Label = "Label2")
ax_dict ['Bottom'].legenda (bbox_to_anchor = (1.05, 1),
loc = 'superior esquerdo', borderaxespad = 0.)
plt.mostrar()

O comando bbox_to_anchor nos permite muita flexibilidade quando se trata de posicionar manualmente as lendas. Se desejarmos que a legenda dos eixos apareça no lado superior direito do modelo, em vez da borda dos eixos, simplesmente fornecemos a posição do canto e a posição tridimensional.

Uma lenda é inserida logo além da subparcela e se expande para. Também fazemos uso da caixa delimitadora que foi fornecida. Uma lenda é adicionada à direita da subtrama menor no segundo gráfico.

Especifique as informações de localização

O plt.Função Legend (), que gera automaticamente uma lenda para cada ponto de trama identificado, é o método mais fácil de desenvolver uma lenda. No entanto, existem inúmeros métodos para modificar essa lenda. Podemos definir a posição e desativar o quadro.

importar matplotlib.pyplot como plt
plt.estilo.Use ('Classic')
importar numpy como np
x = np.Linspace (0, 20, 2000)
fig, ax = pLT.subtramas ()
machado.Lote (X, NP.sin (x), '-b', etiqueta = 'seno')
machado.Lote (X, NP.cos (x), '--r', etiqueta = 'cosseno')
machado.eixo ('igual')
perna = ax.lenda();
machado.legenda (loc = 'superior esquerda', frameton = false)
Figo
machado.Legenda (FrameOn = False, Loc = 'Lower Center', ncol = 3)
Figo
machado.Legenda (FancyBox = True, Framealpha = 1, Shadow = True, BorderPad = 2)
Figo

Para descobrir o número de linhas na lenda, temos que utilizar o comando 'ncol'. Também adicionamos uma sombra, ajustamos a visibilidade (valor alfa) do quadro ou modificamos o espaçamento ao redor do conteúdo usando uma caixa arredondada (FancyBox).

Identificando os elementos da lenda

Por padrão, a lenda compreende todos os itens rotulados. Se não é o que queremos, utilizaremos os elementos fornecidos por comandos de plotagem para ajustar quais componentes e títulos mostram na legenda.

importar matplotlib.pyplot como plt
plt.estilo.Use ('Classic')
importar numpy como np
x = np.Linspace (0, 16, 2000)
fig, ax = pLT.subtramas ()
y = np.sin (x [:, np.newaxis] + np.pi * np.Arange (0, 2, 0.5))
linhas = plt.trama (x, y)
plt.lenda (linhas [: 2], ['primeiro', 'segundo']);
plt.plot (x, y [:, 0], etiqueta = 'primeiro')
plt.plot (x, y [:, 1], etiqueta = 'segundo')
plt.plot (x, y [:, 2:])
plt.legenda (Framealpha = 1, FrameOn = true);

O plt.A função plot () pode construir inúmeras linhas simultaneamente e fornece uma lista das linhas que foram formadas. Fornecendo qualquer um deles para PLT.legend (), podemos indicar quais elementos localizarem, bem como os rótulos que queremos usar. A lenda elimina qualquer itens sem um atributo de título fornecido por padrão.

Múltiplas lendas

Ao criar uma trama, podemos querer incluir diferentes lendas no mesmo eixo. No entanto, Matplotlib de alguma forma não simplifica isso. Só podemos construir uma lenda singular para a trama abrangente usando o método de legenda convencional.

Se queremos usar o PLT.legend () ou machado.legend () para construir uma segunda lenda, então ele invocará o primeiro. Podemos fazer isso adicionando um artista de lendas desde o início e depois adicionando explicitamente o novo artista ao enredo que usa o machado de nível inferior.Adicionar técnica de artista ().

Como percebemos, o método contém apenas lógica básica para estabelecer um artista de lenda apropriado, que será armazenado no atributo legend_ e inserido no gráfico quando o gráfico for criado.

Fora da trama

Utilizamos o matplotlib para impedir que um quadro de legenda se torne truncado. Aplicaremos bbox_extra_artists e bbox_inches para garantir que a lenda não seja cortada. Artistas de Bbox_extra indicam a lista de artistas que seriam levados em consideração ao calcular o bbox apertado. Se Bbox_inches forem ajustados para serem compactos, um bbox tenso será criado para a figura.

importar matplotlib.pyplot como plt
importar numpy como np
x = np.Linspace (0, 20, 3)
y = np.cos (x)
y1 = np.exp (x)
plt.plot (x, y, label = "cos (x)")
plt.plot (x, y1, label = "exp (x)")
Legend_outside = PLT.legenda (bbox_to_anchor = (1.05, 0.0),
loc = 'inferior direito')
plt.savefig ('fora_legend.png ',
dpi = 100,
formato = 'png',
BBOX_EXTRA_ARTISTISS = (Legend_outside,),
bbox_inches = 'apertado')
plt.mostrar()

Para análises visuais, integramos o matplotlib.pyplot como plt. Então, para metadados, incluímos Numpy como NP. Utilizamos as funções Linspace (), cos () e exp () para especificar dimensões de dados. Estamos usando o método plot () para desenhar o gráfico. Utilizamos a função legend () com o argumento bbox_to_anchor para adicionar a legenda do gráfico externo. O gráfico é então salvo como um arquivo PNG usando o método savefig (). Fornecemos os argumentos bbox_extra_artists e bbox_inches ao método savefig () para evitar que a legenda se torne truncada.

Conclusão

Aprendemos alguns métodos para ajustar a localização da legenda em Matplotlib neste artigo. A posição padrão para a lenda é "melhor", isso significa que o matplotlib identificará uma posição para a lenda que impede de obscurecer qualquer conjunto de dados. O parâmetro bbox_to_anchor () também pode ser utilizado para localizar a legenda fora do gráfico. Neste artigo, também discutimos o método para anexar títulos diferentes aos componentes do enredo que queremos mostrar na lenda. Os padrões da lenda às vezes não são suficientes para uma visualização específica. Então, talvez utilizemos valores de pontos para ilustrar aspectos específicos dos dados, por isso teremos que construir uma lenda para representar isso. Além disso, todo local de lenda pode ser indicado.