Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Adicionando Legenda | Personalização de Gráficos
Quizzes & Challenges
Quizzes
Challenges
/
Visualização Definitiva com Python

bookAdicionando 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 right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

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 3. Capítulo 2
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Suggested prompts:

Can you explain the difference between these three legend options?

How do I customize the legend appearance further?

What happens if I don't specify the `loc` parameter in `plt.legend()`?

close

Awesome!

Completion rate improved to 3.85

bookAdicionando 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 right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

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 3. Capítulo 2
single

single

some-alt