Para adicionar uma legenda a um gráfico matplotlib, basta executar legend()
.
Como remover uma legenda de uma trama?
(O mais próximo que cheguei disso foi executar legend([])
para esvaziar a legenda dos dados. Mas isso deixa um retângulo branco feio no canto superior direito.)
matplotlib
legend
Olivier Verdier
fonte
fonte
ax.get_legend().remove()
solução não funcionou no meu caso, enquanto a segunda solução (legend = ax.legend() ... legend.remove()
) funcionou. talvez porqueax
foi umAxesSubplot
no meu caso?Se você deseja plotar um dataframe do Pandas e remover a legenda, adicione legend = None como parâmetro ao comando plot.
fonte
Você pode usar o
set_visible
método da legenda :Isso se baseia em uma resposta que me foi fornecida em resposta a uma pergunta semelhante que tive há algum tempo aqui
(Obrigado por essa resposta, Jouni - desculpe, não consegui marcar a pergunta como respondida ... talvez alguém que tenha autoridade possa fazer isso por mim?)
fonte
você precisa adicionar as seguintes linhas de código:
gca () retorna a alça atual dos eixos e possui essa propriedade legend_
fonte
draw()
porshow()
. Ou existe uma vantagem particular no usodraw
?show()
seria bom se a atualização do gráfico fosse o último comando de um programa.draw()
está bom, pois é o comando geral de atualização de gráfico. Você pode, por exemplo, solicitar ao usuário alguma entrada em um terminal após atualizar o gráfico, o que não pode ser feito com o bloqueioshow()
.draw
é mais apropriado (mas eu sempre useishow
para atualizar meus gráficos ...).Se você não estiver usando objetos de plotagem fig e ax, poderá fazer o seguinte:
fonte
se você ligar
pyplot
comoplt
frameon=False
é remover a borda ao redor da legendae '' está passando a informação de que nenhuma variável deve estar na legenda
fonte
Criei uma lenda adicionando-a à figura, não a um eixo (matplotlib 2.2.2). Para removê-lo, defino o
legends
atributo da figura como uma lista vazia:fonte
De acordo com as informações do @naitsirhc, eu queria encontrar a documentação oficial da API. Aqui estão minhas descobertas e alguns exemplos de código.
matplotlib.Axes
objeto porseaborn.scatterplot()
.ax.get_legend()
retornará umamatplotlib.legned.Legend
instância..remove()
função para remover a legenda do seu gráfico.Se você verificar o
matplotlib.legned.Legend
documento da API, não verá a.remove()
função.A razão é que o
matplotlib.legned.Legend
herdou omatplotlib.artist.Artist
. Portanto, quando você chamaax.get_legend().remove()
isso, basicamente chamamatplotlib.artist.Artist.remove()
.No final, você pode até simplificar o código em duas linhas.
fonte