Libreria estandar Plotly

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].

Interactividad nativa
Permite hacer zoom, paneo, aislar datos haciendo clic en la leyenda y ver detalles al pasar el cursor (tooltips) [dataviz].
Exportación interactiva
Los gráficos se pueden guardar como archivos .html independientes para abrirlos en cualquier navegador o integrarlos en sitios web [dataviz].
Integración perfecta
Funciona directamente con estructuras de datos de Pandas y arrays de NumPy.

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

Gráfico de Líneas Interactivo (Tendencias)

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()

Gráfico de Dispersión (Scatter Plot) con Color y Tamaño

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()

Gráfico de Barras y Exportación a HTML

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 !")

Guardado Estático (Imágenes PNG/JPG)

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)