Gráfico de barras en Python.
CategoriasProgramaciónPython

Gráficos de barras en Python

Gráficos de barras en Python (bar charts)

En el artículo anterior vimos cómo crear gráficos en Python para representar de forma sencilla datos o estadísticas. Hoy, vamos a ir un poco más allá y representaremos gráficos de forma “algo más avanzada o profesional”. Concretamente vamos a ver como crear un gráfico de barras en Python.

Gráfico de barras

Primero veamos el código que es exactamente el mismo que usamos en la primera parte del artículo, salvo algunos métodos concretos del gráfico de barras.

import matplotlib.pyplot as plt

# Datos de ejemplo
lenguajes = ['Python', 'C++', 'C', 'Java', 'C#'] # categorías (eje X).
porcentajes = [25.35, 9.94, 9.71, 9.31, 4.22] # valores numéricos (eje Y).

# Crear gráfico de barras
plt.figure(figsize=(10, 6)) # tamaño del gráfico
plt.bar(lenguajes, porcentajes, color='skyblue')
plt.title('Lenguajes de programación más usados en 2025')
plt.xlabel('Lenguaje de programación')
plt.ylabel('Porcentaje de uso (%)')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

No hay ningún misterio. Importamos la librería, establecemos los datos que queremos mostrar, creamos la figura o grafico con plt.figure, establecemos un título, mostramos el gráfico con plt.show… pero, como he dicho al principio, hacemos uso de algunos métodos concretos del gráfico de barras.

El gráfico de barras usa plt.bar() para representar datos numéricos en ejes cartesianos, mientras que el gráfico circular usa plt.pie() para representar proporciones dentro de un todo.

En lugar de usar plt.pie como hicimos en el primer artículo para crear el gráfico circular, ahora usamos plt.bar para crear un gráfico de barras (valga la redundancia), pero también hacemos uso de plt.xlabel, plt.ylabel… y otros más.

Así, que como vemos que es similar pero no igual, vamos a explicar no solo las diferencias entre uno y otro, sino también los métodos concretos de este tipo de gráfico, el gráfico de barras.

  • plt.bar(): Se encarga de dibujar las barras (necesita eje X e Y explícitos)
  • plt.xlabel(): Nombre de la etiqueta para el eje horizontal (categorías)
  • plt.ylabel(): Nombre de la etiqueta para el eje vertical (valores numéricos)
  • plt.grid(): Añade líneas guía al fondo del gráfico, útil para comparar valores
  • plt.xticks(): (opcional) Cambia etiquetas o rotación de las categorías en eje X. O sea, rota las categoriás mejorando la visualización. Útil si los nombres de las categorías son largos o se solapan entre sí.
  • plt.ylim(): (opcional) Ajusta el rango del eje Y.
  • plt.tight_layout(): ajusta automáticamente los márgenes y el espacio entre los elementos del gráfico (como títulos, ejes y etiquetas), para que no se sobrepongan ni queden cortados.

Siempre que añadas varios elementos al gráfico (como títulos, leyendas o subplots), usa plt.tight_layout() al final, justo antes de plt.show() 😉

Ahora como siempre, podemos personalizarlo un poco más:

import matplotlib.pyplot as plt

# Datos
lenguajes = ['Python', 'C++', 'C', 'Java', 'C#']
porcentajes = [25.35, 9.94, 9.71, 9.31, 4.22]

# Crear gráfico
plt.figure(figsize=(10, 6))  # Tamaño del gráfico

# Personalización del gráfico de barras
barras = plt.bar(lenguajes, porcentajes, color='#36A2EB', edgecolor='black')

# Añadir etiquetas y estilo
plt.title('Lenguajes de programación más usados en 2025', fontsize=16, color='#333')
plt.xlabel('Lenguaje de programación', fontsize=12)
plt.ylabel('Porcentaje de uso (%)', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.6)

# Añadir etiquetas en cada barra
for barra in barras:
    altura = barra.get_height()
    plt.text(barra.get_x() + barra.get_width()/2, altura + 0.5, f'{altura:.1f}%', 
             ha='center', fontsize=10, color='black')

plt.tight_layout()
plt.show()

O incluso un poco más:

import matplotlib.pyplot as plt

# Datos
lenguajes = ['Python', 'C++', 'C', 'Java', 'C#']
porcentajes = [25.35, 9.94, 9.71, 9.31, 4.22]

# Crear gráfico
plt.figure(figsize=(10, 6))  # Tamaño del gráfico
# Personalización del gráfico de barras
barras = plt.bar(lenguajes, porcentajes, color='#61e682', edgecolor='black')

# Añadir etiquetas y estilo
plt.title('Lenguajes de programación más usados en 2025', fontsize=16, color='#333')
plt.xlabel('Lenguaje de programación', fontsize=12)
plt.ylabel('Porcentaje de uso (%)', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.6)

# Limitar el eje Y de 0 a 30
plt.ylim(0, 30)

# Rotar etiquetas del eje X
plt.xticks(rotation=45)

# Añadir etiquetas en cada barra
for barra in barras:
    altura = barra.get_height()
    plt.text(barra.get_x() + barra.get_width()/2, altura + 0.5, f'{altura:.1f}%', 
             ha='center', fontsize=10, color='black')
    

plt.tight_layout()
plt.show()

Aquí podemos destacar el uso de plt.ylim() y plt.xtricks().

Si te fijas en las dos anteriores imágenes, la barra de Python quedaba arriba del todo, pues bien, al usar esta vez plt.ylim(0, 30) conseguimos que el eje Y empiece en 0 y termine en 30. Aunque el valor más alto en los datos sea 25.35, de esta manera Python, no queda pegado al borde superior.

Una vez más fíjate en las dos imágenes primeras y luego compárala con la tercera 😉

Ah, y con plt.xticks() simplemente rotamos los nombres de los lenguajes.

Uso de otros diseños

Como sabemos de la anterior entrega, matplotlib ya tiene algunos diseños o estilos establecidos. Pues bien, con plt.style.use() podemos aplicar un estilo visual predefinido a todos los elementos del gráfico (colores, cuadrícula, líneas, etc).

Es una manera sencilla de darle un look profesional a los gráficos sin configurar cada cosa manualmente.

import matplotlib.pyplot as plt

# Aplicar estilo 
plt.style.use('dark_background')

lenguajes = ['Python', 'C++', 'C', 'Java', 'C#']
porcentajes = [25.35, 9.94, 9.71, 9.31, 4.22]

plt.figure(figsize=(8, 6))
plt.bar(lenguajes, porcentajes)

plt.title('Lenguajes de programación más usados en 2025')
plt.xlabel('Lenguaje de programación')
plt.ylabel('Porcentaje de uso (%)')
plt.grid(True)
plt.show()

Aquí tenemos una lista de estilos.

Aunque también podemos hacer un print a plt.style.available.

Diferencias: gráfico circular vs gráfico de barras

Como vemos, crear gráficos en Python es bastante fácil y versátil.

Ahora, debemos tener en cuenta que el gráfico circular será ideal cuando queramos destacar proporciones o mostrar porcentajes simples dentro de un todo.

Y el gráfico de barras lo usaremos cuando queramos comparar valores entre categorías de forma más clara y precisa, especialmente si hay muchas, pues nos dará una mayor precisión visual. A parte, los gráficos de barras permiten una personalización mucho mayor pudiendo así crear gráficos más profesionales.

Por ahora esto sería todo 😊

Sobre el autor

Comparte:

Este artículo está publicado bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Puedes compartirlo y adaptarlo, incluso con fines comerciales, siempre que cites al autor y mantengas esta misma licencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Óscar Martínez +info...
Finalidad Gestionar y moderar los comentarios +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios No se cederán datos a terceros, salvo obligación legal +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.