Saltar al contenido
Gráficos con Plotly y Python

Gráficos interactivos con Plotly.

Introducción

Plotly es una poderosa biblioteca de visualización de datos interactiva diseñada para Python. Permite a los usuarios crear una amplia gama de gráficos de alta calidad, como gráficos de línea, dispersión, barras, área, burbujas, diagramas de taquilla, embudo, y más. Su característica más destacada es la capacidad de generar gráficos interactivos, lo que facilita a los usuarios explorar y analizar datos al interactuar directamente con ellos. Por ejemplo, en un gráfico de pastel, se puede hacer clic en una sección para resaltarla y mostrar detalles adicionales.

Además de la interactividad, Plotly soporta animaciones que ayudan a mejorar la comprensión de los datos al observar cómo evolucionan. Otra ventaja significativa es su funcionalidad de compartir en línea, lo que permite a los usuarios compartir fácilmente sus visualizaciones interactivas en la web. Esta capacidad es especialmente útil para presentaciones de informes y comunicación efectiva de información.

En resumen, Plotly no solo ofrece una variedad impresionante de tipos de gráficos y capacidades interactivas avanzadas, sino que también facilita la difusión y colaboración al permitir a los usuarios compartir sus visualizaciones de manera accesible en línea.

Resumen

Plotly es una biblioteca de Python que permite crear visualizaciones de datos interactivas y de alta calidad. Entre los tipos de gráficos que se pueden generar con Plotly se incluyen gráficos de dispersión, histogramas, mapas de calor y más. Además, es posible crear gráficos animados y en 3D, lo cual amplía las posibilidades de representación de datos.

La principal diferencia entre los gráficos interactivos generados por Plotly y los gráficos estáticos radica en la capacidad del usuario para interactuar con los datos directamente. Esto se logra a través de funciones como la navegación, el desplazamiento y la selección, que permiten explorar y analizar diferentes aspectos del conjunto de datos de manera dinámica.

Plotly ofrece diversas herramientas para personalizar los gráficos, como animaciones, resaltado de puntos de datos, selección de ejes y más. Esta capacidad de personalización permite adaptar los gráficos a las necesidades específicas de cada aplicación o análisis.

Una ventaja significativa de Plotly es su integración con plataformas web populares como Jupyter Notebook y Dash. Esto simplifica considerablemente el proceso de creación y visualización de datos, facilitando la generación de gráficos interactivos directamente desde un entorno de desarrollo interactivo.

Para crear un gráfico interactivo con Plotly, generalmente se siguen estos pasos:

  1. Importar la librería: Importar el módulo plotly.graph_objs que proporciona clases y métodos para crear y personalizar gráficos.

  2. Definir los datos: Utilizar objetos como Scatter, Heatmap, Histogram u otros según el tipo de gráfico deseado, para definir los datos que se graficarán y sus características.

  3. Crear un objeto Layout: Definir un objeto Layout para establecer el estilo general del gráfico, incluyendo el título, colores, tamaño y otros aspectos visuales.

  4. Crear un objeto Figure: Crear un objeto Figure que combine tanto los datos definidos como el estilo configurado en el objeto Layout.

  5. Mostrar el gráfico: Utilizar el método iplot para mostrar el gráfico interactivo en la terminal o en un entorno compatible.

Con Plotly, es posible crear visualizaciones de datos personalizadas y altamente interactivas que son ideales para explorar datos complejos, comunicar resultados de manera efectiva y facilitar la comprensión de patrones y tendencias en los datos analizados.

Aplicación teórica

Ejemplo práctico de gráficos interactivos con Plotly

Este ejemplo utiliza los datos públicos de COVID-19 proporcionados por la Universidad Johns Hopkins para generar un gráfico interactivo que muestra el número de casos confirmados en diferentes países a lo largo del tiempo. El usuario puede seleccionar qué países mostrar y qué rango de fechas analizar.


import plotly.express as px
import pandas as pd

# Cargar la base de datos de COVID-19
df = pd.read_csv('https://raw.githubusercontent.com/datasets/covid-19/master/data/time-series-19-covid-combined.csv')

# Seleccionar solo los datos de casos confirmados
df_confirmed = df[df['Confirmed'] > 0]

# Generar el gráfico interactivo utilizando Plotly
fig = px.line(df_confirmed, x='Date', y='Confirmed', color='Country/Region', 
              title='Casos confirmados de COVID-19 en diferentes países', 
              labels={'Date': 'Fecha', 'Confirmed': 'Casos confirmados'})
fig.update_xaxes(title_text='Fecha')
fig.update_yaxes(title_text='Casos confirmados')
fig.show()

Este código utiliza Plotly Express para crear un gráfico interactivo de líneas. Carga los datos de COVID-19, filtra para seleccionar solo los casos confirmados, y luego utiliza estos datos para crear un gráfico donde el eje x representa la fecha, el eje y representa el número de casos confirmados, y cada país se representa con una línea de diferente color. El gráfico resultante permite al usuario seleccionar países específicos y rango de fechas para análisis detallado.

Aplicación práctica

Ejemplo práctico de gráfico interactivo de dispersión con Plotly en Python

En este ejemplo, utilizaremos Plotly Express para crear un gráfico interactivo de dispersión a partir de datos cargados desde un archivo CSV.


import plotly.express as px
import pandas as pd

# Cargar los datos desde un archivo CSV
df = pd.read_csv("datos.csv")

# Crear el gráfico de dispersión interactivo con Plotly
fig = px.scatter(df, x="x_values", y="y_values", color="grupo", size="tamaño")

# Mostrar el gráfico interactivo
fig.show()

Explicación del código:

  • Se importan las bibliotecas necesarias: Plotly Express como `px` y Pandas como `pd`.
  • Los datos se cargan desde un archivo CSV llamado "datos.csv" utilizando `pd.read_csv()` y se almacenan en el DataFrame `df` de Pandas.
  • Se utiliza `px.scatter()` de Plotly Express para crear el gráfico de dispersión interactivo. Se especifican los ejes x e y (`x="x_values"`, `y="y_values"`), el color de los puntos según la columna "grupo" (`color="grupo"`), y el tamaño de los puntos según la columna "tamaño" (`size="tamaño"`).
  • Finalmente, `fig.show()` se utiliza para mostrar el gráfico interactivo en una ventana emergente en el navegador web.

Con este código simple, podemos visualizar y explorar datos de manera interactiva utilizando la potente biblioteca Plotly en Python.