Skip to content
Tutoriales
Streamlit
How to Use Streamlit with Seaborn: A Quick Guide

Cómo usar Streamlit con Seaborn: una guía rápida

En el ámbito de la visualización de datos en Python, dos nombres destacan con frecuencia: Streamlit y Seaborn. Estas poderosas bibliotecas han revolucionado la forma en que visualizamos los datos, haciéndolos más accesibles y reveladores. En esta guía exhaustiva, exploraremos la integración de Streamlit y Seaborn, destacando cómo pueden trabajar juntos para crear visualizaciones impresionantes.

Ya seas un científico de datos experimentado o un principiante adentrándote en el mundo de la visualización de datos, esta guía ofrece conocimientos valiosos. Comenzaremos con los conceptos básicos, definiendo qué son Streamlit y Seaborn, y nos adentraremos gradualmente en territorios más complejos, como su integración y ejemplos prácticos.

Presentación de Streamlit

¿Alguna vez te has sentido abrumado por el código al intentar crear una aplicación de visualización de datos? Aquí es donde entra en juego Streamlit. Esta biblioteca open-source de Python es un soplo de aire fresco para los desarrolladores, ya que facilita la creación de aplicaciones web interactivas para machine learning y ciencia de datos.

El encanto de Streamlit radica en su simplicidad. Imagina construir una aplicación web completamente funcional con solo unas pocas líneas de código. ¿Suena demasiado bueno para ser verdad, verdad? Pero con Streamlit, es una realidad.

Aquí hay un vistazo rápido de lo que Streamlit ofrece:

  • Simplicidad: La interfaz amigable de Streamlit te permite centrarte más en los datos y menos en la codificación.
  • Personalización: ¿Quieres que tu aplicación destaque? Streamlit te permite ajustarla según tus necesidades específicas.
  • Integración: Streamlit se lleva bien con otras bibliotecas de Python, incluyendo Seaborn, Matplotlib y Altair. Esto lo convierte en una navaja suiza en el kit de herramientas de un científico de datos.

¿Y qué es Seaborn?

Si Streamlit es el escenario, Seaborn es el actor. Esta biblioteca de visualización de datos en Python, basada en Matplotlib, es como un artista que convierte datos en bruto en gráficos estadísticos atractivos e informativos.

Seaborn brilla cuando se trata de visualizar conjuntos de datos complejos con múltiples variables. Es como tener una lupa que revela patrones y relaciones en tus datos que podrían pasar desapercibidos.

Estas son algunas de las características destacadas de Seaborn:

  • Tipos de gráficos intrincados: ¿Alguna vez has oído hablar de los pair plots y correlation plots? Estos son los especialidades de Seaborn, brindando información valiosa sobre tus datos.
  • Integración con Pandas: Seaborn y Pandas van juntos como la mantequilla de maní y la jalea. Esta integración hace que Seaborn sea una excelente herramienta para el análisis exploratorio de datos.

Streamlit y Seaborn: un dúo dinámico en la visualización de datos

Cuando se utilizan por separado, Streamlit y Seaborn son como superhéroes en el mundo de la visualización de datos. Pero cuando se unen, se convierten en una fuerza imparable. La integración de Streamlit y Seaborn te permite crear visualizaciones de datos interactivas que se pueden compartir y acceder a través de una aplicación web.

Esta poderosa combinación abre un mundo de posibilidades. Por ejemplo, puedes usar Seaborn para crear un pairplot complejo y luego usar Streamlit para mostrar ese gráfico en una aplicación web. De esta manera, puedes compartir tus descubrimientos con otros, incluso si no tienen Python o Seaborn instalados en sus máquinas.

Pero al igual que cualquier dúo dinámico, Streamlit y Seaborn tienen sus desafíos. Es posible que te encuentres con problemas, como la infame 'ImportError' o el error 'savefig'. Pero no te preocupes, estamos aquí para ayudarte. Abordaremos estos problemas y sus soluciones en las siguientes secciones.

Sin embargo, la integración de Streamlit y Seaborn no siempre es sencilla. Es posible que te encuentres con problemas, como la infame 'ImportError' o el error 'savefig'. Pero no te preocupes, abordaremos estos problemas y sus soluciones en las siguientes secciones.

Ejemplos de cómo usar Streamlit con Seaborn

Ahora que hemos cubierto los conceptos básicos, sumerjámonos en algunos ejemplos prácticos. En esta sección, te guiaremos a través del proceso de creación de un pairplot y un correlation plot en Streamlit-Seaborn. También abordaremos el error 'savefig' que suele ocurrir al integrar Streamlit y Seaborn.

Integración de Streamlit y Seaborn

La integración de Streamlit y Seaborn implica algunos pasos. Primero, deberás importar las bibliotecas necesarias. Luego, crearás tu gráfico de Seaborn y usarás Streamlit para mostrarlo. Aquí tienes un ejemplo sencillo:

import streamlit as st
import seaborn as sns
import pandas as pd
 
# Carga tus datos
df = pd.read_csv('tus_datos.csv')
 
# Crea un pairplot de Seaborn
plot = sns.pairplot(df)
 
# Muestra el gráfico en Streamlit
st.pyplot(plot.fig)

En este ejemplo, primero importamos las bibliotecas necesarias (Streamlit, Seaborn y Pandas). Luego cargamos nuestros datos utilizando Pandas. A continuación, creamos un pairplot utilizando Seaborn. Por último, mostramos el gráfico en Streamlit utilizando la función st.pyplot().

Mostrar gráficos de Seaborn en Streamlit

Mostrar gráficos de Seaborn en Streamlit es sencillo. Simplemente creas tu gráfico de Seaborn como de costumbre, luego utilizas la función st.pyplot() para mostrarlo. Aquí tienes un ejemplo:

import streamlit as st
import seaborn as sns
import pandas as pd
 
# Carga tus datos
df = pd.read_csv('tus_datos.csv')
 
# Crea un correlation plot de Seaborn
plot = sns.heatmap(df.corr(), annot=True)
 
# Muestra el gráfico en Streamlit
st.pyplot(plot.get_figure())

En este ejemplo, creamos un correlation plot utilizando la función heatmap() de Seaborn. Luego mostramos el gráfico en Streamlit utilizando la función st.pyplot(). Ten en cuenta que utilizamos el método get_figure() para obtener el objeto de figura de Matplotlib a partir del gráfico de Seaborn.

Crea una aplicación de visualización de datos en Streamlit con PyGWalker

PyGWalker también es otra herramienta impresionante con No Code. Puedes usar fácilmente esta Biblioteca Open Source de Python para crear aplicaciones de visualización de datos de Streamlit.

Demo en línea de PyGWalker + Streamlit: (opens in a new tab)

PyGWalker es una biblioteca de Python que te ayuda a incrustar fácilmente una interfaz similar a Tableau en tu propia aplicación de Streamlit sin esfuerzo.

Mira este increíble video producido por Sven de Coding is Fun que demuestra los pasos detallados para potenciar tu aplicación de Streamlit con esta poderosa Biblioteca de Visualización de Datos de Python!

Un agradecimiento especial a Sven y su gran contribución a la comunidad de PyGWalker!

Además, puedes consultar estos recursos:

  • Cómo explorar datos y compartir hallazgos con Pygwalker y Streamlit
  • Página de GitHub de PyGWalker para más ejemplos de PyGWalker.

Visualize Data in Streamlit with PyGWalker

Ejemplo avanzado: Construir una aplicación de Streamlit para Machine learning

Centrémonos en crear una aplicación de machine learning con Streamlit. Utilizaremos un ejemplo sencillo: una aplicación de análisis de sentimientos. Esta aplicación tomará la entrada del usuario, predecirá el sentimiento de la entrada utilizando un modelo pre-entrenado y mostrará el resultado.

Paso 1: Importar bibliotecas necesarias

En primer lugar, necesitaremos importar las bibliotecas necesarias. Necesitaremos Streamlit para la aplicación en sí, y una biblioteca de machine learning para el análisis de sentimientos. Para este ejemplo, utilizaremos TextBlob.

import streamlit as st
from textblob import TextBlob

Paso 2: Crear una función para el análisis de sentimientos

A continuación, crearemos una función que tome una cadena de texto como entrada y devuelva el sentimiento del texto. El método sentiment.polarity de TextBlob devuelve un número decimal entre -1 y 1, donde -1 es un sentimiento negativo, 1 es un sentimiento positivo y 0 es un sentimiento neutral.

def analyze_sentiment(text):
    return TextBlob(text).sentiment.polarity

Paso 3: Crear la aplicación de Streamlit

Ahora, crearemos la aplicación de Streamlit. Comenzaremos agregando un título y un campo de entrada de texto donde los usuarios puedan ingresar su texto. Luego, agregaremos un botón que, al hacer clic, analizará el sentimiento del texto de entrada y mostrará el resultado.

st.title('Sentiment Analysis App')
 
user_input = st.text_input("Introduce el texto aquí")
 
if st.button('Analizar'):
    sentiment = analyze_sentiment(user_input)
    if sentiment < 0:
        st.write('El sentimiento de este texto es negativo.')
    elif sentiment > 0:
        st.write('El sentimiento de este texto es positivo.')
    else:
        st.write('El sentimiento de este texto es neutral.')

Paso 4: Ejecutar la aplicación

Finalmente, puedes ejecutar la aplicación escribiendo streamlit run app.py en tu terminal, donde app.py es el nombre de tu archivo Python.

¡Y voilà! Ahora tienes una aplicación de análisis de sentimientos. El usuario puede ingresar cualquier texto y la aplicación analizará y mostrará el sentimiento del texto. Este es solo un ejemplo sencillo, pero puedes crear aplicaciones de machine learning mucho más complejas con Streamlit. ¡El cielo es el límite!

Conclusión

La integración de Streamlit y Seaborn es un cambio de juego en el mundo de la visualización de datos. Combina la simplicidad y la interactividad de Streamlit con el poder y la flexibilidad de Seaborn, abriendo un mundo de posibilidades para científicos de datos y desarrolladores.

Ya sea que estés creando un pairplot complejo o una simple visualización de correlación, Streamlit y Seaborn te cubren. Y con los ejemplos prácticos y tutoriales en esta guía, estás en buen camino para dominar la integración de Streamlit y Seaborn.

Así que adelante, inténtalo. Sumérgete en el mundo de Streamlit y Seaborn y desata el poder de la visualización de datos.

Preguntas frecuentes

1. ¿Puedo usar Seaborn en Streamlit?

¡Absolutamente! Streamlit se integra perfectamente con Seaborn, lo que te permite crear visualizaciones interactivas de datos que se pueden compartir y acceder a través de una aplicación web.

2. ¿Cómo se muestra el gráfico de Seaborn en Streamlit?

Puedes mostrar un gráfico de Seaborn en Streamlit utilizando la función st.pyplot(). Simplemente crea tu gráfico de Seaborn como de costumbre y luego pasa el objeto de figura de Matplotlib a st.pyplot().

3. ¿Es Seaborn mejor que Matplotlib?

Seaborn y Matplotlib sirven para propósitos diferentes y a menudo se utilizan juntos. Seaborn proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos, mientras que Matplotlib ofrece más control sobre los detalles más finos del gráfico. Dependiendo de tus necesidades, uno puede ser más adecuado que el otro.

4. ¿Para qué es bueno Streamlit?

Streamlit es una biblioteca de Python de código abierto que permite a los desarrolladores crear aplicaciones web interactivas para machine learning y ciencia de datos. Está diseñado para simplificar el proceso de construcción y uso compartido de herramientas de machine learning, por lo que es una excelente opción para la visualización de datos.