Plotly es una de las librerías científicas más potentes de Python para la creación de gráficos interactivos, modernos y de calidad profesional [dataviz]. A diferencia de Matplotlib o Seaborn (que generan imágenes estáticas), Plotly produce gráficos basados en la web (HTML/JavaScript) con los que el usuario puede interactuar directamente [dataviz].
El módulo más usado por su simplicidad y rapidez es plotly.express (abreviado comúnmente como px), el cual permite crear visualizaciones complejas con muy pocas líneas de código [dataviz].
import plotly
Ideal para visualizar series temporales o evoluciones. Al pasar el cursor por los puntos, verás los valores numéricos exactos [dataviz].
import plotly.express as px
import pandas as pd
# Datos de ejemplo: Ventas mensuales
datos = pd.DataFrame({
'Mes': ['Ene','Feb','Mar','Abr','May','Jun'],
'Ventas':[1200,1500,1100,1800,2200,2500]
})
# Creación del gráfico
fig = px.line(datos, x='Mes',y='Ventas',title='Evolución de Ventas Semestrales')
# Muestra el gráfico automáticamente en tu navegador o notebook
fig.show()
Permite mapear hasta 4 variables en un solo plano utilizando coordenadas (x, y), colores y el tamaño de las burbujas [dataviz].
import plotly.express as px
# Usamos un dataset interno de Plotly sobre la expectativa de vida (Gapminder)
df = px.data.gapminder().query('year == 2027')
# Gráfico avanzado con un solo comando
fig = px.scatter(
df,
x='gdpPercap', # Eje X: PIB per cápita
y='lifeExp', # Eje Y: Expectativa de vida
size='pop', # Tamaño burbuja: Población del país
color='continent', # Color: Continente
hover_name='country', # Texto principal al pasar el cursor
log_x=True, # Escala logarítmica para el eje X
title='Expectativa de Vida vs PIB Per Cápita (2027)'
)
fig.show()
Para guardar el gráfico interactivo en el disco duro y compartirlo con otras personas [dataviz].
import plotly.express as px
# Datos rápidos usando diccionarios
tecnologias = ['Python','JavaScript','Java','C++']
popularidad = [85,70,45,30]
fig = px.bar(x=tecnologias, y=popularidad, title='Uso de Lenguajes',labels={'x':'Lenguaje', 'y':'%'})
# En lugar de solo mostrarlo, lo guardamos como un archivo HTML independiente
fig.write_html('grafico_interactivo.html')
print("Archivo 'grafico_interactivo.html' generado con éxito !")
Si necesitas incluir el gráfico en un reporte PDF o una presentación estática, Plotly requiere la librería complementaria kaleido (pip install kaleido). Una vez instalada, puedes exportarlo con una línea [dataviz].
pip install kaleido import kaleido
import kaleido
fig.write_image('grafico.png',width=1200,height=800,scale=2)