Agregar etiquetas de valor en el gráfico de barras de Matplotlib
-
Agregue etiquetas de valor en el gráfico de barras de Matplotlib utilizando el método
pyplot.text()
-
Agregue etiquetas de valor en el gráfico de barras de Matplotlib usando la función
pyplot.annotate()
- Conclusión
Los gráficos de barras de Matplotlib son una buena forma de visualizar datos en Python. En los gráficos de barras, a menudo necesitamos agregar etiquetas para visualizar los datos. Este artículo analizará las diversas formas de agregar etiquetas de valor en un gráfico de barras de Matplotlib.
Agregue etiquetas de valor en el gráfico de barras de Matplotlib utilizando el método pyplot.text()
Para agregar etiquetas de valor en un gráfico de barras Matplotlib, podemos usar la función pyplot.text()
.
La función pyplot.text()
del módulo Matplotlib
se usa para agregar valores de texto a cualquier ubicación en el gráfico. La sintaxis de la función pyplot.text()
es la siguiente.
matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)
Aquí,
- Los parámetros
x
ey
son las coordenadas del gráfico donde se colocará el texto. El parámetros
contiene la cadena de texto. - El parámetro
fontdict
se utiliza para cambiar propiedades como la fuente y el tamaño del texto. Su valor predeterminado esNone
. - El parámetro
**kwargs
representa otros parámetros que se utilizan para decidir la posición del texto en el gráfico de barras.
En este artículo, usaremos el parámetro ha
para decidir la alineación horizontal del texto. Puede obtener más información sobre otros parámetros de la función en la documentación oficial de la función text()
.
Tracemos ahora un gráfico de barras y luego agreguemos etiquetas de valor. Suponga que tenemos datos del número de estudiantes de una clase en una escuela de las clases 1 a 10 en forma de lista como se muestra a continuación.
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
Aquí, el índice i
representa el número de alumnos de la clase i+1
. Para trazar los datos, crearemos una lista class_number
que contiene números del 1 al 10. Después de eso, trazaremos el gráfico de barras usando la función pyplot.bar()
. Luego, agregaremos title
, xlabel
y ylabel
al gráfico usando las funciones title
, xlabel
e ylabel
respectivamente.
Para agregar etiquetas de valor, definiremos una función add_value_label(x_list,y_list)
. Aquí, lista_x
e lista_y
son las listas que contienen datos para el eje x y el eje y, es decir, número_clase
y no_de_estudiantes
.
En la función add_value_label()
, especificaremos las coordenadas de las etiquetas de valor como (x, la altura del gráfico de barras en x)
para que la etiqueta de valor se agregue a la parte superior del gráfico de barras. El valor de texto pasado a la función de texto será la altura del gráfico de barras en x
. Aquí, x
serán los elementos de class_number
, y la altura del gráfico de barras en x
será el número correspondiente de estudiantes en la clase x
.
Por ejemplo, agregaremos el número de estudiantes en cada clase como una etiqueta de valor en la parte superior del gráfico de barras.
import matplotlib.pyplot as plt
def add_value_label(x_list, y_list):
for i in range(1, len(x_list) + 1):
plt.text(i, y_list[i - 1], y_list[i - 1])
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()
Producción:
Puede observar que las etiquetas de valor no están en el centro en la parte superior del gráfico de barras en la salida. Podemos hacerlo manipulando los argumentos de entrada como se explica en las siguientes secciones.
Agregue etiquetas de valor en el gráfico de barras de Matplotlib en el centro de cada barra
Para agregar las etiquetas de valor en el gráfico de barras de Matplotlib en el centro en la parte superior del gráfico de barras, especificaremos la alineación horizontal como centro
en la función pyplot.text()
de la siguiente manera.
import matplotlib.pyplot as plt
def add_value_label(x_list, y_list):
for i in range(1, len(x_list) + 1):
plt.text(i, y_list[i - 1], y_list[i - 1], ha="center")
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()
Producción:
Agregue etiquetas de valor en el gráfico de barras de Matplotlib en el medio de la altura de cada barra
También puede agregar etiquetas de valor en el medio de la altura de cada barra. Para ello, tenemos que especificar la coordenada y
en la función pyplot.text()
como (la altura del gráfico de barras en x) / 2
. Puede ver esto en el siguiente código de ejemplo.
import matplotlib.pyplot as plt
def add_value_label(x_list, y_list):
for i in range(1, len(x_list) + 1):
plt.text(i, y_list[i - 1] / 2, y_list[i - 1], ha="center")
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()
Producción:
Agregue etiquetas de valor en el gráfico de barras de Matplotlib usando la función pyplot.annotate()
En lugar de la función pyplot.text()
, podemos usar la función pyplot.annotate()
para agregar etiquetas de valor en un gráfico de barras matplotlib. La sintaxis de la función pyplot.annotate()
es la siguiente.
matplotlib.pyplot.annotate(text, xy, *args, **kwargs)
Aquí,
- El parámetro
text
es la etiqueta que se agregará al gráfico. - El parámetro
xy
acepta una tupla(x,y)
dondex
ey
son las coordenadas donde se agregará la etiqueta al gráfico. - La función acepta muchos argumentos diferentes. Este artículo solo utilizará el parámetro
ha
para establecer la alineación horizontal de la etiqueta en el gráfico de barras.
Trazaremos el gráfico de barras usando la función pyplot.bar()
. Luego, agregaremos title
, xlablel
y ylabel
al gráfico utilizando las funciones title()
, xlabel()
e ylabel
respectivamente.
Para agregar etiquetas de valor en el gráfico de barras de Matplotlib, definiremos una función add_value_label(x_list,y_list)
. Aquí, x
e y
son las listas que contienen datos para el eje x y el eje y. En la función add_value_label()
, pasaremos las tuplas creadas a partir de los datos dados para las coordenadas x
e y
como argumento de entrada al parámetro xy
. Con eso, pasaremos otros valores a la función annotate()
para agregar etiquetas de valor en el gráfico de barras de Matplotlib de la siguiente manera.
import matplotlib.pyplot as plt
def add_value_label(x_list, y_list):
for i in range(1, len(x_list) + 1):
plt.annotate(y_list[i - 1], (i, y_list[i - 1]))
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()
Producción:
Nuevamente, puede observar que las etiquetas no están alineadas con el gráfico de barras. Para alinearlos, puede utilizar el parámetro de alineación horizontal ha
para establecer la siguiente alineación.
import matplotlib.pyplot as plt
def add_value_label(x_list, y_list):
for i in range(1, len(x_list) + 1):
plt.annotate(y_list[i - 1], (i, y_list[i - 1]), ha="center")
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()
Producción:
También puede agregar etiquetas de valor en el medio de la altura de cada barra. Para ello, tenemos que especificar la coordenada y
en las tuplas como (la altura del gráfico de barras en x) / 2
. Puede ver esto en el siguiente código de ejemplo.
import matplotlib.pyplot as plt
def add_value_label(x_list, y_list):
for i in range(1, len(x_list) + 1):
plt.annotate(y_list[i - 1], (i, y_list[i - 1] / 2), ha="center")
no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()
Producción:
Conclusión
Este artículo ha discutido dos formas de agregar etiquetas de valor en un gráfico de barras Matplotlib usando la función text()
y la función annotate()
. También vimos cómo podíamos decidir la alineación y la posición de las etiquetas cambiando el parámetro. Puede usar cualquiera de las formas discutidas para agregar etiquetas de valor en un gráfico de barras de Matplotlib según su conveniencia.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub