3 Librerías de Python para Visualización de Datos: Plotnine, Pygal y Folium

Ejemplo de visualizaciones.


Author

Affiliation

Rigoberto Chandomi

 

Published

March 17, 2025

DOI


📌 3 Librerías de Python para Visualización de Datos: Plotnine, Pygal y Folium 📊🌍

📢 Python ofrece una amplia variedad de librerías para la visualización de datos, cada una con características únicas que las hacen ideales para diferentes casos de uso.

📌 En esta publicación exploraremos tres opciones potentes:

Plotnine: Basado en la gramática de gráficos de ggplot2.
Pygal: Permite generar gráficos interactivos en SVG.
Folium: Facilita la creación de mapas interactivos con Leaflet.js.

Veamos cómo utilizarlas con ejemplos más avanzados. 🚀


🔵 Plotnine: Visualización con Gramática de Gráficos

📌 Plotnine es la implementación de la gramática de gráficos en Python, similar a ggplot2 en R.

Facilita la construcción de gráficos mediante capas.
Permite un alto grado de personalización.
Compatible con Pandas y NumPy.

🔗 Documentación: Plotnine en GitHub

Ejemplo: Gráfico de Dispersión con Regresión

# Importar librerías
import pandas as pd
import matplotlib.pyplot as plt
from plotnine import ggplot, aes, geom_point, geom_smooth, theme_minimal

# Cargar datos
df = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/mpg.csv")

# Crear gráfico con los nombres correctos de las columnas
plot = (ggplot(df, aes(x='displacement', y='mpg')) +  # Cambiamos hwy -> mpg
        geom_point(color="blue") +
        geom_smooth(method='lm', color="red", se=True) +
        theme_minimal())

# Mostrar gráfico en RMarkdown
plot.draw()
#plt.show()

# Guardar el gráfico como imagen
#plot.save("plotnine_output.png", dpi=300)

📌 En este gráfico:
Se representa la relación entre el desplazamiento del motor y la eficiencia en carretera.
Se añade una línea de regresión con un intervalo de confianza.
El estilo minimalista mejora la legibilidad.


🔵 Pygal: Gráficos Interactivos en SVG

📌 Pygal permite generar gráficos interactivos en formato SVG, ideales para web.

Ligero y fácil de usar.
Ideal para dashboards interactivos.
Compatible con Flask y Django.

🔗 Documentación: Pygal en GitHub

Ejemplo: Gráfico de Barras Comparativo

import pygal

# Crear un gráfico de barras
bar_chart = pygal.Bar()
bar_chart.title = "Comparación de Consumo de Combustible"
bar_chart.add("Ciudad", [15, 18, 20, 22, 24]);
bar_chart.add("Carretera", [20, 24, 28, 30, 32]);
bar_chart.x_labels = ["Toyota", "Ford", "BMW", "Tesla", "Honda"]

# Guardar como archivo SVG
bar_chart.render_to_file("barras.svg")

📌 Este gráfico incluye:
Comparación entre consumo en ciudad y carretera.
Formato interactivo que se puede usar en web.
Se genera en un archivo SVG optimizado.


🔵 Folium: Mapas Interactivos con Leaflet.js

📌 Folium es la mejor opción para crear mapas interactivos en Python con Leaflet.js.

Fácil integración con datos geoespaciales.
Permite superponer datos sobre mapas de OpenStreetMap.
Compatible con Pandas y GeoJSON.

🔗 Documentación: Folium en GitHub

Ejemplo: Mapa con Marcadores Personalizados

import folium

# Crear mapa centrado en una ubicación
mapa = folium.Map(location=[19.4326, -99.1332], zoom_start=10); 

# Agregar marcadores con información emergente
folium.Marker([19.4326, -99.1332], popup="Ciudad de México").add_to(mapa);
folium.Marker([20.6597, -103.3496], popup="Guadalajara").add_to(mapa);

# Guardar mapa en HTML
mapa.save("mapa_interactivo.html")

📌 Este mapa incluye:
Ubicaciones clave en México.
Marcadores con información emergente.
Generación de un archivo HTML interactivo.


📌 Comparación de las Librerías

   Librería  Tipo de gráficos             Mejor uso   Compatibilidad
0  Plotnine         Estáticos  Exploración de datos    Pandas, NumPy
1     Pygal  Interactivos SVG     Visualización web    Django, Flask
2    Folium             Mapas  Análisis geoespacial  GeoJSON, Pandas

📌 Resumen de diferencias entre librerías:
Plotnine es ideal para visualizaciones estáticas y exploración de datos.
Pygal destaca en gráficos interactivos que se pueden incrustar en web.
Folium permite trabajar con datos geoespaciales de manera sencilla.


Conclusión

📌 Cada una de estas librerías tiene un caso de uso ideal:

Si buscas gráficos al estilo ggplot2, usa Plotnine.
Si necesitas gráficos interactivos en web, Pygal es una excelente opción.
Si trabajas con mapas, Folium te permitirá visualizar datos geoespaciales de forma interactiva.