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

Ejemplo de visualizaciones.

Author
Published

March 17, 2025

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

Ver código
# 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

Ver código
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

Ver código
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.