Skip to content

Créez des tableaux de bord interactifs avec Streamlit : Un tutoriel complet

Updated on

Dans le domaine de la science des données, la capacité de visualiser et d'interagir avec vos données est primordiale. C'est là qu'intervient Streamlit. Streamlit est une bibliothèque Python open-source qui vous permet de créer des applications web personnalisées pour l'exploration et la visualisation des données. Dans ce tutoriel, nous plongerons dans le monde de Streamlit et apprendrons comment créer des tableaux de bord interactifs, déployer des modèles d'apprentissage automatique, et plus encore.

Avez-vous entendu parler de cet outil formidable d'analyse et de visualisation des données, qui transforme votre application Streamlit en Tableau ?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit sans effort.

PyGWalker pour la visualisation des données dans Streamlit (opens in a new tab)

Introduction à Streamlit

Qu'est-ce que Streamlit ?

Streamlit est une bibliothèque Python open-source qui facilite la création d'applications web personnalisées pour l'apprentissage automatique et la science des données. Dans un monde où les données sont roi, Streamlit est la reine, en fournissant les outils nécessaires pour donner vie à vos données.

L'interface intuitive et conviviale de Streamlit vous permet de transformer rapidement et facilement les scripts de données en applications web partageables. Avec seulement quelques lignes de code, vous pouvez créer de magnifiques tableaux de bord interactifs et des visualisations de données. Que vous soyez un scientifique des données chevronné ou un débutant qui trempe simplement les pieds dans le monde des données, Streamlit offre une plateforme polyvalente pour vous aider à comprendre et à présenter vos données.

Les avantages de l'utilisation de Streamlit pour la visualisation des données

La visualisation des données est un aspect essentiel de l'analyse des données. Elle nous permet de comprendre des ensembles de données complexes en les représentant sous une forme graphique facile à comprendre. Streamlit excelle dans ce domaine, offrant une gamme d'avantages :

  • Visualisation en temps réel : Les capacités en temps réel de Streamlit signifient que vos tableaux de bord se mettront à jour instantanément lorsque vos données changent. Cela est particulièrement utile pour surveiller les flux de données en direct ou pour suivre les indicateurs de performance clés.

  • Tableaux de bord interactifs : Avec Streamlit, vos tableaux de bord ne sont pas seulement des images statiques, ce sont des applications web interactives. Cela permet aux utilisateurs de manipuler les données, de zoomer sur des zones spécifiques et de plonger réellement dans les détails.

  • Facilité d'utilisation : Streamlit est conçu pour être convivial. Vous n'avez pas besoin d'être un développeur web pour créer de superbes tableaux de bord. Si vous pouvez écrire du code Python, vous pouvez utiliser Streamlit.

  • Intégration avec l'écosystème Python de la science des données : Streamlit s'intègre parfaitement aux bibliothèques Python populaires telles que Pandas, NumPy et Plotly, ce qui en fait un outil puissant pour tout scientifique des données.

Le rôle de Streamlit dans les modèles d'apprentissage automatique

Streamlit n'est pas seulement destiné à la visualisation des données. C'est aussi un outil puissant pour l'apprentissage automatique. Avec Streamlit, vous pouvez rapidement créer des applications web interactives pour présenter vos modèles d'apprentissage automatique. Cela peut être particulièrement utile pour démontrer les capacités de votre modèle aux parties prenantes ou pour le débogage et l'ajustement du modèle.

Par exemple, vous pourriez créer une application Streamlit qui prend en entrée des données d'utilisateur, les passe à votre modèle d'apprentissage automatique et affiche la prédiction en temps réel. Ou vous pourriez créer une application qui vous permet d'ajuster les paramètres de votre modèle et de voir comment cela affecte la sortie. Les possibilités sont infinies.

Création d'un tableau de bord avec Streamlit

Comment créer un tableau de bord avec Streamlit

La création d'un tableau de bord avec Streamlit est un processus simple. Voici un exemple de base pour vous aider à démarrer :

import streamlit as st
import pandas as pd
 
# Charger les données
data = pd.read_csv('data.csv')
 
# Créer un titre
st.title("Mon premier tableau de bord Streamlit")
 
# Afficher les données dans un tableau
st.table(data)

Dans cet exemple, nous importons d'abord les bibliothèques nécessaires. Ensuite, nous chargeons nos données à l'aide de Pandas. Ensuite, nous créons un titre pour notre tableau de bord en utilisant la fonction st.title(). Enfin, nous affichons nos données dans un tableau en utilisant la fonction st.table().

Tableau de bord en temps réel avec Streamlit

L'une des fonctionnalités clés de Streamlit est sa capacité à créer des tableaux de bord en temps réel. Cela est particulièrement utile lors de la manipulation de flux de données en direct ou lorsque vous devez surveiller les changements dans vos données au fil du temps.

Pour créer un tableau de bord en temps réel, vous pouvez utiliser la fonction st.write() de Streamlit dans une boucle. Voici un exemple :

import streamlit as st
import pandas as pd
import time
 
# Créer un titre
st.title("Tableau de bord de données en temps réel")
 
# Initialiser un DataFrame vide
data = pd.DataFrame()
 
# Mettre à jour les données toutes les secondes
for i in range(100):
    # Simuler de nouvelles données
    new_data = pd.DataFrame({"valeur": [i]}, index=[time.time()])
    
    # Ajouter les nouvelles données aux données existantes
    data = data.append(new_data)
    
    # Afficher les données
    st.write(data)
    
    # Attendre 1 seconde avant la prochaine mise à jour
    time.sleep(1)

Dans cet exemple, nous créons d'abord un titre pour notre tableau de bord. Ensuite, nous initialisons un DataFrame vide pour stocker nos données. Ensuite, nous entrons dans une boucle qui simule l'arrivée de nouvelles données toutes les secondes. Nous ajoutons ces nouvelles données à nos données existantes et les affichons à l'aide de la fonction st.write(). Enfin, nous attendons une seconde avant de mettre à jour à nouveau les données.

Visualisation interactive des données avec Streamlit

Streamlit vous permet également de créer des visualisations interactives des données. Cela peut être fait en utilisant la fonction st.plotly_chart(), qui intègre Streamlit avec la bibliothèque Plotly.

Voici un exemple de création d'un graphique de dispersion interactif :

import streamlit as st
import pandas as pd
import plotly.express as px
 
# Charger les données
data = pd.read_csv('data.csv')
 
# Créer un graphique de dispersion
fig = px.scatter(data, x='x', y='y')
 
# Afficher le graphique
st.plotly_chart(fig)

Dans cet exemple, nous chargeons d'abord nos données. Ensuite, nous créons un graphique de dispersion à l'aide de Plotly Express. Enfin, nous affichons le graphique à l'aide de la fonction st.plotly_chart().

Ce n'est que la partie visible de l'iceberg en ce qui concerne ce que vous pouvez faire avec Streamlit. Avec un peu de créativité et de connaissances en Python, vous pouvez créer des tableaux de bord interactifs époustouflants qui donnent vie à vos données.

Visualisation en temps réel des données avec Streamlit

La capacité de Streamlit à gérer les données en temps réel est l'une de ses fonctionnalités les plus puissantes. Cela est particulièrement utile pour les applications qui nécessitent une surveillance constante ou des mises à jour en direct. Par exemple, vous pourriez créer un tableau de bord Streamlit pour surveiller en temps réel les données des capteurs IoT. Voici un exemple simple :

import streamlit as st
import random
import time
 
st.title('Données de capteurs IoT en temps réel')
 
data = []
 
for _ in range(100):
    data.append(random.randint(0, 100))
    st.line_chart(data)
    time.sleep(0.1)

Dans cet exemple, nous simulons des données de capteurs IoT en temps réel en générant des nombres aléatoires et en mettant à jour le graphique linéaire toutes les 0,1 secondes.

Modèles d'apprentissage automatique interactifs avec Streamlit

L'interactivité de Streamlit s'étend également aux modèles d'apprentissage automatique. Vous pouvez créer des tableaux de bord qui permettent aux utilisateurs d'ajuster les paramètres du modèle et de voir les effets en temps réel. Cela peut être un outil puissant pour comprendre comment différents paramètres influencent les prédictions d'un modèle.

Par exemple, supposons que vous ayez un modèle d'apprentissage automatique qui prédit le taux de résiliation des clients en fonction de caractéristiques telles que l'âge du client, l'ancienneté et les frais mensuels. Vous pourriez créer une application Streamlit qui permet aux utilisateurs d'ajuster ces paramètres et de voir la probabilité de résiliation prédite en temps réel. Voici un exemple de base :

import streamlit as st
from sklearn.ensemble import RandomForestClassifier
import numpy as np
 
st.title('Prédiction de résiliation des clients')
 
# Charger votre modèle entraîné
model = RandomForestClassifier()
model.load('my_model.pkl')
 
# Obtenir l'entrée de l'utilisateur
age = st.slider('Âge', 18, 100)
anciennete = st.slider('Ancienneté (mois)', 1, 72)
frais_mensuels = st.slider('Frais mensuels', 20.0, 100.0)
 
# Faire une prédiction
input_data = np.array([[age, anciennete, frais_mensuels]])
prediction = model.predict_proba(input_data)
 
# Afficher la prédiction
st.write(f'Probabilité de résiliation : {prediction[0][1]}')

Dans cet exemple, nous chargeons d'abord notre modèle entraîné. Ensuite, nous utilisons la fonction slider de Streamlit pour obtenir l'entrée de l'utilisateur pour l'âge, l'ancienneté et les frais mensuels. Nous transmettons cette entrée à notre modèle pour faire une prédiction, et enfin, nous affichons la probabilité de résiliation prédite.

Visualisation des données IoT avec Streamlit

Avec la montée de l'Internet des objets (IoT), il y a un besoin croissant d'outils pouvant visualiser les données IoT. Streamlit est bien adapté à cette tâche, grâce à ses capacités en temps réel et à sa facilité d'utilisation.

Pour cet exemple, supposons que nous ayons un fichier CSV nommé sensor_data.csv qui contient des données de capteurs IoT en temps réel. Voici comment vous pouvez afficher ces données dans Streamlit :

import streamlit as st
import pandas as pd
import time
 
st.title('Données de capteurs IoT en temps réel')
 
# Charger les données
data = pd.read_csv('sensor_data.csv')
 
# Afficher les données en temps réel
for i in range(len(data)):
    # Afficher le point de données actuel
    st.line_chart(data[:i+1])
    
    # Attendre une courte période de temps avant d'afficher le point de données suivant
    time.sleep(0.1)

Dans cet exemple, nous commençons par charger les données des capteurs à partir du fichier CSV. Nous affichons ensuite les données en temps réel en ajoutant progressivement un point de données à la fois au graphique linéaire. Après chaque ajout de point de données, nous attendons une courte période de temps avant d'ajouter le suivant. Cela crée l'effet de l'affichage des données en temps réel.

Conclusion

Streamlit est un outil puissant pour créer des tableaux de bord interactifs de données. Que vous visualisiez des données IoT en temps réel, présentiez un modèle d'apprentissage automatique ou simplement exploriez un ensemble de données, Streamlit offre une plateforme conviviale et flexible pour le faire. Avec sa syntaxe basée sur Python et sa large gamme de fonctionnalités, il n'est pas étonnant que Streamlit devienne un choix populaire pour les scientifiques des données et les analystes. Ces exemples ne sont qu'un aperçu de ce qu'il est possible de faire avec Streamlit, et je vous encourage à explorer davantage ses possibilités.

Avez-vous entendu parler de cet outil impressionnant d'analyse de données et de visualisation de données, qui transforme votre application Streamlit en Tableau ?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit sans effort.

PyGWalker pour la visualisation des données dans Streamlit (opens in a new tab)

Foire aux questions

Streamlit est-il bon pour les tableaux de bord ?

Oui, Streamlit est un excellent outil pour créer des tableaux de bord interactifs de données. Il est basé sur Python, ce qui le rend accessible à de nombreux scientifiques des données, et il offre une large gamme de fonctionnalités pour la visualisation des données et l'interactivité.

Streamlit est-il meilleur que Flask ?

Streamlit et Flask servent à des fins différentes. Flask est un framework web polyvalent, tandis que Streamlit est spécifiquement conçu pour créer des tableaux de bord de données. Si vous souhaitez créer rapidement et facilement un tableau de bord de données, Streamlit est probablement le meilleur choix.

Quels sont les inconvénients de Streamlit ?

Bien que Streamlit soit un outil puissant, il présente également des inconvénients. Tout d'abord, il n'est pas aussi personnalisable que certains autres outils de création de tableaux de bord. De plus, bien qu'il soit idéal pour créer des applications simples et autonomes, il peut ne pas être le meilleur choix pour les applications web plus complexes.

Pourquoi Dash est-il meilleur que Streamlit ?

Dash et Streamlit ont des utilisations différentes. Dash est un outil de création de tableaux de bord qui s'appuie sur Plotly, tandis que Streamlit est un framework de développement d'interfaces utilisateur pour les applications de science des données. Les deux outils ont leurs avantages et leurs inconvénients et le choix entre eux dépend des besoins spécifiques du projet. Que Dash est meilleur que Streamlit dépend de vos besoins spécifiques. Dash, qui est également une bibliothèque Python pour créer des applications web interactives, offre plus d'options de personnalisation que Streamlit. Cependant, Streamlit est souvent loué pour sa simplicité et sa facilité d'utilisation, ce qui en fait un meilleur choix pour les prototypages rapides et les tableaux de bord simples.