matplotlib.axes.Axes.legend #
- Machados. legenda ( * args , ** kwargs ) [fonte] #
Coloque uma legenda nos eixos.
Assinaturas de chamada:
legend() legend(handles, labels) legend(handles=handles) legend(labels)
As assinaturas de chamada correspondem às seguintes maneiras diferentes de usar este método:
1. Detecção automática de elementos a serem mostrados na legenda
Os elementos a serem adicionados à legenda são determinados automaticamente, quando você não passa nenhum argumento extra.
Nesse caso, os rótulos são retirados do artista. Você pode especificá-los na criação do artista ou chamando o
set_label()
método no artista:ax.plot([1, 2, 3], label='Inline label') ax.legend()
ou:
line, = ax.plot([1, 2, 3]) line.set_label('Label via method') ax.legend()
Observação
Artistas específicos podem ser excluídos da seleção automática de elementos de legenda usando um rótulo começando com um sublinhado, "_". Uma string começando com um sublinhado é o rótulo padrão para todos os artistas, portanto, chamar
Axes.legend
sem nenhum argumento e sem definir os rótulos manualmente resultará em nenhuma legenda sendo desenhada.2. Listar explicitamente os artistas e gravadoras na legenda
Para controle total de quais artistas têm uma entrada de legenda, é possível passar um iterável de legenda de artistas seguido por um iterável de rótulos de legenda, respectivamente:
ax.legend([line1, line2, line3], ['label1', 'label2', 'label3'])
3. Listar explicitamente os artistas na legenda
Isso é semelhante ao 2, mas os rótulos são retirados das propriedades do rótulo dos artistas. Exemplo:
line1, = ax.plot([1, 2, 3], label='label1') line2, = ax.plot([1, 2, 3], label='label2') ax.legend(handles=[line1, line2])
4. Rotular elementos de plotagem existentes
Desanimado
Essa assinatura de chamada é desencorajada, porque a relação entre os elementos do gráfico e os rótulos é apenas implícita por sua ordem e pode ser facilmente confundida.
Para criar uma legenda para todos os artistas em um Axes, chame esta função com um iterável de strings, uma para cada item da legenda. Por exemplo:
ax.plot([1, 2, 3]) ax.plot([5, 6, 7]) ax.legend(['First line', 'Second line'])
- Parâmetros :
- lida com sequência de
Artist
, opcional Uma lista de artistas (linhas, patches) a serem adicionados à legenda. Use isso junto com etiquetas , se você precisar de controle total sobre o que é mostrado na legenda e o mecanismo automático descrito acima não for suficiente.
O comprimento das alças e etiquetas deve ser o mesmo neste caso. Se não estiverem, eles serão truncados para o menor comprimento.
- lista de rótulos de str, opcional
Uma lista de rótulos para mostrar ao lado dos artistas. Use junto com alças , caso precise de controle total sobre o que é mostrado na legenda e o mecanismo automático descrito acima não for suficiente.
- lida com sequência de
- Devoluções :
- Outros Parâmetros :
- loc str ou par de floats, padrão:
rcParams["legend.loc"]
(padrão:'best'
) ('melhor' para eixos, 'canto superior direito' para figuras) A localização da lenda.
As strings colocam a legenda no canto correspondente dos eixos/figura.
'upper left', 'upper right', 'lower left', 'lower right'
As strings colocam a legenda no centro da aresta correspondente dos eixos/figura.
'upper center', 'lower center', 'center left', 'center right'
A string
'center'
coloca a legenda no centro dos eixos/figura.O barbante
'best'
coloca a legenda no local, entre os nove locais definidos até o momento, com o mínimo de sobreposição com outros artistas sorteados. Esta opção pode ser bastante lenta para gráficos com grandes quantidades de dados; sua velocidade de plotagem pode se beneficiar ao fornecer um local específico.A localização também pode ser uma tupla de 2 dando as coordenadas do canto inferior esquerdo da legenda nas coordenadas dos eixos (caso em que bbox_to_anchor será ignorado).
Para compatibilidade com versões anteriores, (mas nenhum outro local) também pode ser escrito , e cada local de "string" também pode ser fornecido como um valor numérico:
'center right'
'right'
Cadeia de Localização
Código de localização
'melhor'
0
'canto superior direito'
1
'superior esquerdo'
2
'inferior esquerdo'
3
'inferior direito'
4
'certo'
5
'centro esquerda'
6
'centro direita'
7
'centro inferior'
8
'centro superior'
9
'Centro'
10
- bbox_to_anchor
BboxBase
, 2 tuplas ou 4 tuplas de floats Caixa que serve para posicionar a legenda em conjunto com loc . O padrão é
axes.bbox
(se chamado como um método paraAxes.legend
) oufigure.bbox
(seFigure.legend
). Este argumento permite a colocação arbitrária da legenda.As coordenadas Bbox são interpretadas no sistema de coordenadas fornecido por bbox_transform , com as coordenadas padrão Transform Axes ou Figure, dependendo de qual
legend
é chamada.Se uma tupla 4 ou
BboxBase
for fornecida, ela especifica a bbox em que a legenda é colocada. Para colocar a legenda na melhor localização no quadrante inferior direito dos eixos (ou figura):(x, y, width, height)
loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
Uma tupla 2 coloca o canto da legenda especificada por loc em x, y. Por exemplo, para colocar o canto superior direito da legenda no centro dos eixos (ou figura), as seguintes palavras-chave podem ser usadas:
(x, y)
loc='upper right', bbox_to_anchor=(0.5, 0.5)
- ncols int, padrão: 1
O número de colunas que a legenda possui.
Para compatibilidade com versões anteriores, a ortografia ncol também é suportada, mas é desencorajada. Se ambos forem fornecidos, ncols terá precedência.
- prop Nenhum ou
matplotlib.font_manager.FontProperties
ou dict As propriedades da fonte da legenda. Se Nenhum (padrão), a corrente
matplotlib.rcParams
será usada.- fontsize int ou {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
O tamanho da fonte da legenda. Se o valor for numérico, o tamanho será o tamanho absoluto da fonte em pontos. Os valores de string são relativos ao tamanho de fonte padrão atual. Este argumento só é usado se prop não for especificado.
- labelcolor str ou lista, padrão:
rcParams["legend.labelcolor"]
(padrão:'None'
) A cor do texto na legenda. Uma sequência de cores válida (por exemplo, 'vermelho') ou uma lista de sequências de cores. A labelcolor também pode ser feita para combinar com a cor da linha ou marcador usando 'linecolor', 'markerfacecolor' (ou 'mfc') ou 'markeredgecolor' (ou 'mec').
Labelcolor pode ser definido globalmente usando
rcParams["legend.labelcolor"]
(padrão:'None'
). Se Nenhum, usercParams["text.color"]
(padrão:'black'
).- numpoints int, padrão:
rcParams["legend.numpoints"]
(padrão:1
) O número de pontos de marcador na legenda ao criar uma entrada de legenda para uma
Line2D
(linha).- pontos de dispersão int, padrão:
rcParams["legend.scatterpoints"]
(padrão:1
) O número de pontos de marcador na legenda ao criar uma entrada de legenda para um
PathCollection
(gráfico de dispersão).- scatteryoffsets iterável de floats, padrão:
[0.375, 0.5, 0.3125]
O deslocamento vertical (relativo ao tamanho da fonte) para os marcadores criados para uma entrada de legenda do gráfico de dispersão. 0.0 está na base do texto da legenda e 1.0 está no topo. Para desenhar todos os marcadores na mesma altura, defina como
[0.5]
.- float de escala de marcador , padrão:
rcParams["legend.markerscale"]
(padrão:1.0
) O tamanho relativo dos marcadores de legenda em comparação com os originalmente desenhados.
- marcadorprimeiro bool, padrão: True
Se True , o marcador de legenda é colocado à esquerda do rótulo da legenda. Se False , o marcador de legenda é colocado à direita do rótulo da legenda.
- frameon bool, padrão:
rcParams["legend.frameon"]
(padrão:True
) Se a legenda deve ser desenhada em um patch (quadro).
- fantasiabox bool, padrão:
rcParams["legend.fancybox"]
(padrão:True
) Se bordas arredondadas devem ser habilitadas ao redor do
FancyBboxPatch
que compõe o plano de fundo da legenda.- shadow bool, padrão:
rcParams["legend.shadow"]
(padrão:False
) Se deve desenhar uma sombra por trás da legenda.
- framealpha float, padrão:
rcParams["legend.framealpha"]
(padrão:0.8
) A transparência alfa do plano de fundo da legenda. Se shadow estiver ativado e framealpha for
None
, o valor padrão será ignorado.- facecolor "herdar" ou cor, padrão:
rcParams["legend.facecolor"]
(padrão:'inherit'
) A cor de fundo da legenda. Se
"inherit"
, usercParams["axes.facecolor"]
(padrão:'white'
).- edgecolor "herdar" ou cor, padrão:
rcParams["legend.edgecolor"]
(padrão:'0.8'
) A cor da borda do patch de plano de fundo da legenda. Se
"inherit"
, use takercParams["axes.edgecolor"]
(padrão:'black'
).- modo {"expandir", Nenhum}
Se mode for definido como
"expand"
a legenda será expandida horizontalmente para preencher a área dos eixos (ou bbox_to_anchor se definir o tamanho da legenda).- bbox_transform Nenhum ou
matplotlib.transforms.Transform
A transformação para a caixa delimitadora ( bbox_to_anchor ). Para um valor de
None
(padrão) atransAxes
transformação dos eixos será usada.- título str ou nenhum
O título da lenda. O padrão é nenhum título (
None
).- title_fontproperties Nenhum ou
matplotlib.font_manager.FontProperties
ou dict As propriedades da fonte do título da legenda. Se Nenhum (padrão), o argumento title_fontsize será usado se presente; se title_fontsize também for None, o atual
rcParams["legend.title_fontsize"]
(padrão:None
) será usado.- title_fontsize int ou {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, padrão:
rcParams["legend.title_fontsize"]
(padrão:None
) O tamanho da fonte do título da legenda. Observação: isso não pode ser combinado com title_fontproperties . Se você deseja definir o tamanho da fonte juntamente com outras propriedades de fonte, use o parâmetro de tamanho em title_fontproperties .
- alinhamento {'centro', 'esquerda', 'direita'}, padrão: 'centro'
O alinhamento do título da legenda e a caixa de entradas. As entradas são alinhadas como um único bloco, de modo que os marcadores estejam sempre alinhados.
- borderpad flutuante, padrão:
rcParams["legend.borderpad"]
(padrão:0.4
) O espaço em branco fracionário dentro da borda da legenda, em unidades de tamanho de fonte.
- labelpacing flutuante, padrão:
rcParams["legend.labelspacing"]
(padrão:0.5
) O espaço vertical entre as entradas de legenda, em unidades de tamanho de fonte.
- handlelength float, padrão:
rcParams["legend.handlelength"]
(padrão:2.0
) O comprimento das alças da legenda, em unidades de tamanho de fonte.
- handleheight float, padrão:
rcParams["legend.handleheight"]
(padrão:0.7
) A altura das alças da legenda, em unidades de tamanho de fonte.
- handletextpad flutuante, padrão:
rcParams["legend.handletextpad"]
(padrão:0.8
) O pad entre a alça da legenda e o texto, em unidades de tamanho de fonte.
- borderaxespad float, padrão:
rcParams["legend.borderaxespad"]
(padrão:0.5
) O pad entre os eixos e a borda da legenda, em unidades de tamanho de fonte.
- espaçamento de colunas float, padrão:
rcParams["legend.columnspacing"]
(padrão:2.0
) O espaçamento entre colunas, em unidades de tamanho de fonte.
- handler_map dict ou Nenhum
As instâncias ou tipos de mapeamento de dicionário personalizado para um manipulador de legenda. Este handler_map atualiza o mapa do manipulador padrão encontrado em
matplotlib.legend.Legend.get_legend_handler_map
.
- loc str ou par de floats, padrão:
Veja também
Notas
Alguns artistas não são suportados por esta função. Consulte o guia Legend para obter detalhes.
Exemplos
( Código fonte , png )
Exemplos usando matplotlib.axes.Axes.legend
#
Demonstração do rótulo da barra
Gráfico de barras agrupadas com rótulos
Plotando variáveis categóricas
Personalizando estilos de linha tracejada
Linhas com um efeito de caminho assinalado
Gráficos de dispersão com símbolos personalizados
Scatter parcelas com uma lenda
Traçar uma elipse de confiança de um conjunto de dados bidimensional
Usando histogramas para traçar uma distribuição cumulativa
A função histograma (hist) com vários conjuntos de dados
Compondo legendas personalizadas
Legenda usando rótulos predefinidos
Renderizando equações matemáticas usando o TeX
Efeito de caminho TickedStroke
Plotar dados 2D em plotagem 3D
Formatador de marca personalizado para séries temporais
Gráfico de barras de grupo com unidades