Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Trabalhando com Legenda | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Visualização de Dados com Matplotlib

bookTrabalhando com Legenda

Quando um gráfico contém vários elementos, adicionar uma legenda ajuda a esclarecer o que cada elemento representa. O matplotlib oferece diversas maneiras de criar uma legenda.

Primeira Opção

É possível definir todos os rótulos diretamente dentro de plt.legend():

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Isso cria uma legenda no canto superior esquerdo ao passar uma lista de rótulos para plt.legend().

Segunda Opção

Também é possível atribuir rótulos diretamente nas funções de plotagem utilizando o parâmetro label=:

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Aqui, plt.legend() reúne automaticamente os rótulos dos elementos plotados.

Terceira Opção

Também é possível definir rótulos utilizando o método set_label() do artista retornado:

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Localização da Legenda

O argumento loc controla onde a legenda aparece. O valor padrão 'best' instrui o matplotlib a escolher automaticamente uma localização ideal.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Valores válidos para loc incluem:

'upper left'

'upper center'

'upper right'

'center left'

'center'

'center right'

'lower left'

'lower center'

'lower right'

Você também pode usar a opção 'best', que posiciona automaticamente a legenda no local com menor sobreposição aos dados plotados. Além disso, usar 'right' produz o mesmo resultado que 'center right'.

Note
Estude Mais

Você pode explorar mais em legend() documentação

Tarefa

Swipe to start coding

  1. Rotule as barras mais baixas como 'primary sector', especificando o argumento de palavra-chave apropriado.
  2. Rotule as barras do meio como 'secondary sector', especificando o argumento de palavra-chave apropriado.
  3. Rotule as barras superiores como 'tertiary sector', especificando o argumento de palavra-chave apropriado.
  4. Posicione a legenda no lado direito, centralizada verticalmente.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 10
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

bookTrabalhando com Legenda

Deslize para mostrar o menu

Quando um gráfico contém vários elementos, adicionar uma legenda ajuda a esclarecer o que cada elemento representa. O matplotlib oferece diversas maneiras de criar uma legenda.

Primeira Opção

É possível definir todos os rótulos diretamente dentro de plt.legend():

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Isso cria uma legenda no canto superior esquerdo ao passar uma lista de rótulos para plt.legend().

Segunda Opção

Também é possível atribuir rótulos diretamente nas funções de plotagem utilizando o parâmetro label=:

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Aqui, plt.legend() reúne automaticamente os rótulos dos elementos plotados.

Terceira Opção

Também é possível definir rótulos utilizando o método set_label() do artista retornado:

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Localização da Legenda

O argumento loc controla onde a legenda aparece. O valor padrão 'best' instrui o matplotlib a escolher automaticamente uma localização ideal.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Valores válidos para loc incluem:

'upper left'

'upper center'

'upper right'

'center left'

'center'

'center right'

'lower left'

'lower center'

'lower right'

Você também pode usar a opção 'best', que posiciona automaticamente a legenda no local com menor sobreposição aos dados plotados. Além disso, usar 'right' produz o mesmo resultado que 'center right'.

Note
Estude Mais

Você pode explorar mais em legend() documentação

Tarefa

Swipe to start coding

  1. Rotule as barras mais baixas como 'primary sector', especificando o argumento de palavra-chave apropriado.
  2. Rotule as barras do meio como 'secondary sector', especificando o argumento de palavra-chave apropriado.
  3. Rotule as barras superiores como 'tertiary sector', especificando o argumento de palavra-chave apropriado.
  4. Posicione a legenda no lado direito, centralizada verticalmente.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 10
single

single

some-alt