Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Agregar Leyenda | Personalización de Gráficos
Visualización Definitiva con Python

bookAgregar Leyenda

Cuando un gráfico contiene múltiples elementos, agregar una leyenda ayuda a clarificar qué representa cada elemento. matplotlib ofrece varias formas de crear una leyenda.

Primera opción

Se pueden definir todas las etiquetas directamente 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

Esto crea una leyenda en la esquina superior izquierda al pasar una lista de etiquetas a plt.legend().

Segunda opción

También es posible asignar etiquetas directamente dentro de las funciones de graficado utilizando el 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

Aquí, plt.legend() recopila automáticamente las etiquetas de los elementos graficados.

Tercera opción

También es posible establecer etiquetas utilizando el método set_label() del 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

Ubicación de la leyenda

El argumento loc controla dónde aparece la leyenda. El valor predeterminado 'best' indica a matplotlib que elija automáticamente una ubicación óptima.

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

Los valores válidos para loc incluyen: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Estudia más

Puedes explorar más en legend() documentación

Tarea

Swipe to start coding

  1. Etiquetar las barras más bajas como 'primary sector' especificando el argumento de palabra clave correspondiente.
  2. Etiquetar las barras del medio como 'secondary sector' especificando el argumento de palabra clave correspondiente.
  3. Etiquetar las barras superiores como 'tertiary sector' especificando el argumento de palabra clave correspondiente.
  4. Colocar la leyenda en el lado derecho, centrada verticalmente.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 2
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

close

Awesome!

Completion rate improved to 3.85

bookAgregar Leyenda

Desliza para mostrar el menú

Cuando un gráfico contiene múltiples elementos, agregar una leyenda ayuda a clarificar qué representa cada elemento. matplotlib ofrece varias formas de crear una leyenda.

Primera opción

Se pueden definir todas las etiquetas directamente 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

Esto crea una leyenda en la esquina superior izquierda al pasar una lista de etiquetas a plt.legend().

Segunda opción

También es posible asignar etiquetas directamente dentro de las funciones de graficado utilizando el 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

Aquí, plt.legend() recopila automáticamente las etiquetas de los elementos graficados.

Tercera opción

También es posible establecer etiquetas utilizando el método set_label() del 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

Ubicación de la leyenda

El argumento loc controla dónde aparece la leyenda. El valor predeterminado 'best' indica a matplotlib que elija automáticamente una ubicación óptima.

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

Los valores válidos para loc incluyen: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Estudia más

Puedes explorar más en legend() documentación

Tarea

Swipe to start coding

  1. Etiquetar las barras más bajas como 'primary sector' especificando el argumento de palabra clave correspondiente.
  2. Etiquetar las barras del medio como 'secondary sector' especificando el argumento de palabra clave correspondiente.
  3. Etiquetar las barras superiores como 'tertiary sector' especificando el argumento de palabra clave correspondiente.
  4. Colocar la leyenda en el lado derecho, centrada verticalmente.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 2
single

single

some-alt