Aprendiendo hacer gráficas en Python
CategoriasProgramaciónPython

Gráficos en Python

Gráficos en Python

En este post vamos hablar sobre la biblioteca matplotlib de Python. Esta biblioteca es de las más populares para crear gráficos en Python ya que nos permite generar gráficos de barras, líneas, pastel (circulares) y muchos más. Aparte, es bastante sencilla de utilizar (como casi todo en Python).

Como siempre, vamos a ver algunos ejemplos y los vamos a ir explicando paso a paso.

Para empezar, vamos a imaginar, en un gran alarde de originalidad, como crear un gráfico que represente el uso de los lenguajes de programación más populares en este año 2025.

Primer paso: Instalar matplotlib

Si estamos en Windows, en la consola (cmd) escribimos:

python -m pip install -U matplotlib

En distribuciones Linux:

Debian / Ubuntu: sudo apt-get install python3-matplotlib

Fedora: sudo dnf install python3-matplotlib

Red Hat: sudo yum install python3-matplotlib

Arch: sudo pacman -S python-matplotlib

Para más información y personalización mirar aquí.

Una vez instalado:

Pasamos a la segunda parte.

Segundo paso: Importar matplotlib

Lo que haremos es importar el módulo pyplot de matplotlib, que es el submódulo encargado de las funciones para crear gráficos. Por convención, se suele importar como plt.

import matplotlib.pyplot as plt

Tercer paso: Definir los datos a mostrar

Como hemos dicho, el gráfico será sobre mostrar los lenguajes de programación más usados este 2025, pues bien, vamos a crear dos listas.

La primera contendrá los nombres de los lenguajes de programación. Y la segunda, contendrá el porcentaje de uso correspondiente a cada lenguaje. Para simplificarlo todo, vamos a optar por escoger los 5 lenguajes más usados basándonos en el índice de TIOBE el cual es un gran indicador de la popularidad de los lenguajes de programación.

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

Sobra decir que podríamos hacerlo más profesional obteniendo los datos a través de una API u otra fuente, pero lo hacemos así para simplificar.

Cuarto paso: Creamos el gráfico

El gráfico que vamos a crear es sencillo. Será de tipo circular o también llamado pastel. Vamos hacer uso de plt.figure() que sirve para crear una nueva figura, o sea, básicamente lo que es el gráfico en si o “ventana de gráfico”.

plt.figure(figsize=(8, 8))

A plt.figure() le pasamos el parámetro figsize indicando el tamaño en pulgadas (ancho, y alto). Al establecer un valor igual, nos aseguramos que el gráfico circular no se vea deformado. A continuación, hacemos uso de plt.pie() para crear el gráfico circular.

plt.pie(porcentajes, labels=lenguajes, autopct='%1.1f%%', startangle=140, colors=plt.cm.Paired.colors)

Los parámetros que le pasamos son:

porcentajes: los valores numéricos que representan cada porción.

Labels: los lenguajes que se mostrarán en cada porción.

autopct: es el formato que usamos para mostrar los porcentajes en cada segmento. En este ejemplo le indicamos que sea con un decimal.

startangle: el ángulo inicial para girar el gráfico (140 grados para mejor estética).

Colors:  usamos el colormap «Paired», que es una paleta predefinida en matplotlib, para dar colores “armoniosos” a cada sector.

Podemos reemplazar «Paired» por otros colormaps como: plt.cm.Set3.colors, plt.cm.Pastel1.colors, plt.cm.Accent.colors y otros muchos. Podemos verlo aquí y aquí.

Quinto paso: Mostrar el gráfico en pantalla

Por último, usamos plt.show() para visualizar el gráfico en una ventana.

Paso opcional: Algunos ajustes

Podemos realizar algunos ajustes para personalizar un poco más el gráfico, añadiendo por ejemplo un título con plt.title()

plt.title('Lenguajes de programación más usados en 2025')

O incluso:

plt.title('Lenguajes de programación más usados en 2025', fontsize=16, color='#36A2EB', loc='center')

También podemos añadir un tipo de leyenda mediante plt.legent():

plt.legend(title='Lenguajes', loc='upper right')

E incluso, en lugar de usar los colores del ejemplo (colors=plt.cm.Paired.colors) podemos agregar nuestros propios colores:

plt.pie(porcentajes, labels=lenguajes, autopct='%1.1f%%',
        startangle=140, colors=['#FF9999', '#66B2FF', '#99FF99', '#FFCC99', '#C2C2F0'],
        wedgeprops={'edgecolor': 'white', 'linewidth': 2})

Mediante wedgeprops podemos personalizar los bordes de cada segmento.

Y ya, para ir finalizando el post (aunque podríamos seguir mucho más), también podemos usar explode en combinación con shadow para destacar una porción del gráfico. Por ejemplo, nos puede servir para destacar el lenguaje más usado:

explode = [0.1, 0, 0, 0, 0]

Mediante la línea anterior, solo la primera porción se separa, haciendo que el primer valor se “aleje” del centro. Con el número indicamos cuánto (0.1 ya es una buena separación).

Y ahora lo aplicamos a la función plt.pie():

plt.pie(porcentajes, labels=lenguajes, autopct='%1.1f%%',
        startangle=140, colors=['#FF9999', '#66B2FF', '#99FF99', '#FFCC99', '#C2C2F0'],
        wedgeprops={'edgecolor': 'white', 'linewidth': 2}, explode=explode,
        shadow=True)

Finalmente, el resultado de todas estas personalizaciones es el siguiente:

¿Qué diferencia respecto al gráfico que hicimos inicialmente no? 😉

Aquí esta todo el código con todo lo que acabamos de hacer:

import matplotlib.pyplot as plt

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

explode = [0.1, 0, 0, 0, 0] # Separa un poco la porción de Python

plt.figure(facecolor='#eeeeee', figsize=(8, 8))

plt.pie(porcentajes, labels=lenguajes, autopct='%1.1f%%',
        startangle=140, colors=['#FF9999', '#66B2FF', '#99FF99', '#FFCC99', '#C2C2F0'],
        wedgeprops={'edgecolor': 'white', 'linewidth': 2}, explode=explode,
        shadow=True)

# Algo más de ersonalización
plt.title('Lenguajes de programación más usados en 2025', fontsize=16, color='#36A2EB', loc='center')

plt.legend(title='Lenguajes', loc='upper right')

plt.show()

Como hemos visto, este post ha pretendido ser una aproximación a los gráficos en Python.

El ejemplo ha servido para ver que como crear un gráfico en Python de forma sencilla y poder usarlo para generar nuestros propios informes con una representación rápida y visual.

Eso si, debemos tener en cuenta de que si queremos algo más avanzado, comparando por ejemplo diferentes datos, categorías (en nuestro ejemplo lenguajes), etcétera, en ese caso sería mejor usar un gráfico más avanzado como es el gráfico de barras. Quizás sea un motivo para una segunda parte… 🤔​

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.