El gráfico de barras es el tipo de gráfico más versátil y uno de los más fáciles de interpretar. Si tienes datos que comparan categorías — ventas por región, población por país, votos por candidato — las barras son probablemente la mejor opción. Y con matplotlib, crearlas toma cuatro líneas de código.
Tu primer gráfico de barras
import matplotlib.pyplot as plt
frutas = ['Manzana', 'Plátano', 'Naranja', 'Uva']
ventas = [45, 32, 58, 21]
plt.bar(frutas, ventas)
plt.show()
Eso es todo. plt.bar() recibe dos listas: las categorías (eje X) y los valores (eje Y). plt.show() muestra el resultado.
Agregar título y etiquetas
Un gráfico sin contexto no comunica nada. Siempre agrega título y etiquetas de ejes:
import matplotlib.pyplot as plt
frutas = ['Manzana', 'Plátano', 'Naranja', 'Uva']
ventas = [45, 32, 58, 21]
plt.bar(frutas, ventas)
plt.title('Ventas por fruta')
plt.xlabel('Fruta')
plt.ylabel('Unidades vendidas')
plt.show()
Tres funciones que deberías usar siempre:
| Función | Qué hace |
|---|---|
plt.title() | Título del gráfico |
plt.xlabel() | Etiqueta del eje horizontal |
plt.ylabel() | Etiqueta del eje vertical |
Cambiar el color de las barras
plt.bar(frutas, ventas, color='steelblue')
Puedes usar nombres de colores ('red', 'green', 'steelblue') o códigos hexadecimales ('#e17055'). También puedes asignar un color distinto a cada barra pasando una lista:
colores = ['#e17055', '#fdcb6e', '#00b894', '#6c5ce7']
plt.bar(frutas, ventas, color=colores)
Trabajar con datos de un diccionario
En la práctica, los datos suelen venir en diccionarios. Para convertirlos en un gráfico:
import matplotlib.pyplot as plt
datos = {
'Norte': 45000,
'Sur': 32000,
'Este': 58000,
'Oeste': 41000
}
plt.bar(list(datos.keys()), list(datos.values()), color='steelblue')
plt.title('Ventas por región')
plt.ylabel('Monto ($)')
plt.show()
list(datos.keys()) extrae las categorías y list(datos.values()) extrae los valores numéricos.
Barras horizontales
Cuando los nombres de las categorías son largos, las barras horizontales evitan que las etiquetas se sobrepongan:
import matplotlib.pyplot as plt
paises = ['Argentina', 'Colombia', 'México', 'Chile', 'Perú']
poblacion = [46, 52, 128, 19, 34]
plt.barh(paises, poblacion, color='#00b894')
plt.title('Población por país')
plt.xlabel('Millones de habitantes')
plt.show()
La diferencia es usar plt.barh() en lugar de plt.bar().
Errores frecuentes
Olvidar plt.show(): sin esta línea, el gráfico se crea en memoria pero no se muestra. Es el error más común al empezar con matplotlib.
Listas de distinto largo: si la lista de categorías tiene 4 elementos y la de valores tiene 5, matplotlib lanza un error. Siempre verifica que ambas listas tengan el mismo número de elementos.
No agregar etiquetas: un gráfico de barras sin título ni etiquetas de ejes obliga al lector a adivinar qué representan las barras. Siempre incluye contexto.
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de Visualización de Datos y recibes corrección inmediata de IA.
Comenzar gratis →