Skip to content

[Tutoriel Streamlit] Créez rapidement des visualisations de données interactives

Updated on

Streamlit est un outil open-source qui permet aux développeurs de créer des applications web interactives avec facilité. Il est conçu pour aider les scientifiques des données et les ingénieurs à rationaliser leur visualisation de données et leurs tâches d'apprentissage automatique. Avec Streamlit, vous pouvez transformer des scripts Python simples en de belles applications web axées sur les données en seulement quelques lignes de code.

La visualisation de données est un aspect crucial de l'analyse de données. Elle nous permet de comprendre des ensembles de données complexes en les représentant sous une forme graphique. Streamlit prend en charge différents types de visualisations, notamment les graphiques à barres, les graphiques linéaires, les tracés, les diagrammes circulaires et les histogrammes. Cet article vous guidera dans le processus de création de ces visualisations à l'aide de Streamlit.

Créez facilement des visualisations interactives de données dans Streamlit avec PyGWalker

PyGWalker (opens in a new tab) est également un autre outil impressionnant qui fonctionne à merveille comme alternative à Streamlit AgGrid.

Démonstration en ligne de PyGWalker + Streamlit (opens in a new tab)

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.

Regardez cette incroyable vidéo produite par Cómo explorar datos con PyGWalker en Python (opens in a new tab) démontrant les étapes détaillées pour enrichir votre application Streamlit avec cette puissante bibliothèque de visualisation de données Python !


Un grand merci à Sven et à sa grande contribution (opens in a new tab) à la communauté PyGWalker !

De plus, vous pouvez également consulter ces ressources :

Visualisez les données dans Streamlit avec PyGWalker (opens in a new tab)

Graphique à barres Streamlit

Un graphique à barres est un graphique qui présente des données catégorielles avec des barres rectangulaires proportionnelles aux valeurs qu'elles représentent. Dans Streamlit, la fonction st.bar_chart() est utilisée pour créer des graphiques à barres. C'est un moyen simple et efficace de comparer différentes catégories de données.

import streamlit as st
import pandas as pd
 
# Créez un dataframe d'exemple
data = pd.DataFrame({
  'Fruits': ['Pommes', 'Oranges', 'Bananes', 'Raisins'],
  'Quantité': [15, 25, 35, 45]
})
 
# Créez un graphique à barres
st.bar_chart(data)

Dans l'extrait de code ci-dessus, nous importons d'abord les bibliothèques nécessaires et créons un dataframe d'exemple. Ensuite, nous utilisons la fonction st.bar_chart() pour créer un graphique à barres. Le graphique utilisera automatiquement les indices du dataframe pour l'axe des x et les valeurs pour l'axe des y.

Bien que la fonction st.bar_chart() soit facile à utiliser, elle offre des options de personnalisation limitées. Pour des scénarios plus complexes, vous devrez peut-être utiliser d'autres bibliothèques comme Matplotlib ou Plotly, qui offrent plus de flexibilité.

Graphique linéaire Streamlit

Un graphique linéaire, ou graphique en ligne, est un type de graphique qui affiche des informations sous la forme d'une série de points de données appelés « marqueurs » reliés par des segments de ligne droite. Il s'agit d'un type de graphique basique couramment utilisé dans de nombreux domaines. Dans Streamlit, la fonction st.line_chart() est utilisée pour créer des graphiques linéaires.

import streamlit as st
import pandas as pd
 
# Créez un dataframe d'exemple
data = pd.DataFrame({
  'Année': [2018, 2019, 2020, 2021],
  'Ventes': [350, 480, 550, 680]
})
 
# Créez un graphique linéaire
st.line_chart(data)

Dans l'extrait de code ci-dessus, nous créons un dataframe d'exemple, puis nous utilisons la fonction st.line_chart() pour créer un graphique linéaire. Le graphique utilisera automatiquement les indices du dataframe pour l'axe des x et les valeurs pour l'axe des y.

Les graphiques linéaires de Streamlit sont faciles à utiliser mais moins personnalisables. Pour des scénarios plus complexes, vous devrez peut-être utiliser d'autres bibliothèques comme Matplotlib ou Plotly.

Tracés dans Streamlit

Streamlit prend en charge plusieurs bibliothèques différentes pour créer des tracés, notamment Matplotlib, Plotly, Vega-Lite, et d'autres encore. Cela vous permet de créer une grande variété de visualisations, des simples graphiques linéaires aux tracés interactifs complexes.

Par exemple, vous pouvez créer un histogramme à l'aide de Matplotlib et l'afficher dans Streamlit à l'aide de la fonction st.pyplot().

import streamlit as st
import matplotlib.pyplot as plt
 
import numpy as np
 
# Générez des données aléatoires
data = np.random.normal(0, 1, size=100)
 
# Créez un histogramme
plt.hist(data, bins=20)
 
# Affichez le tracé dans Streamlit
st.pyplot()

Dans l'extrait de code ci-dessus, nous générons d'abord des données aléatoires. Ensuite, nous créons un histogramme à l'aide de la fonction plt.hist() de Matplotlib. Enfin, nous affichons le tracé dans Streamlit à l'aide de la fonction st.pyplot().

Streamlit prend également en charge des bibliothèques de tracés interactifs comme Plotly. Cela vous permet de créer des tracés interactifs sur lesquels les utilisateurs peuvent zoomer, faire défiler et survoler pour obtenir des informations plus détaillées.

Diagramme circulaire Streamlit

Les diagrammes circulaires sont des graphiques statistiques circulaires divisés en tranches pour illustrer des proportions numériques. Bien que Streamlit ne dispose pas d'une fonction intégrée pour créer des diagrammes circulaires, vous pouvez les créer en utilisant d'autres bibliothèques comme Matplotlib et les afficher dans Streamlit en utilisant la fonction st.pyplot().

import streamlit as st
import matplotlib.pyplot as plt
 
# Données à tracer
labels = 'Python', 'Java', 'C++', 'JavaScript'
sizes = [215, 130, 245, 210]
 
# Créer un diagramme circulaire
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
 
# Afficher le tracé dans Streamlit
st.pyplot()

Dans le code ci-dessus, nous définissons d'abord les données à tracer. Ensuite, nous créons un diagramme circulaire en utilisant la fonction plt.pie() de Matplotlib. Enfin, nous affichons le tracé dans Streamlit en utilisant la fonction st.pyplot().

La création de diagrammes circulaires dans Streamlit peut nécessiter un peu plus de travail par rapport aux diagrammes à barres ou aux graphiques linéaires, mais elle offre plus de flexibilité et d'options de personnalisation.

Histogramme Streamlit

Un histogramme est une représentation précise de la distribution de données numériques. C'est une estimation de la distribution de probabilité d'une variable continue. Dans Streamlit, vous pouvez créer des histogrammes en utilisant la fonction st.pyplot() en combinaison avec Matplotlib.

import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
 
# Générer des données aléatoires
data = np.random.normal(0, 1, size=100)
 
# Créer un histogramme
plt.hist(data, bins=20)
 
# Afficher le tracé dans Streamlit
st.pyplot()

Dans le code ci-dessus, nous générons d'abord des données aléatoires. Ensuite, nous créons un histogramme en utilisant la fonction plt.hist() de Matplotlib. Enfin, nous affichons le tracé dans Streamlit en utilisant la fonction st.pyplot().

Les histogrammes sont un outil puissant pour visualiser la distribution des données. Ils peuvent fournir des informations sur l'étendue globale des données, leur asymétrie et leur kurtosis.

Techniques de tracé avancées dans Streamlit

La compatibilité de Streamlit avec diverses bibliothèques de tracé ouvre un monde de possibilités pour créer des visualisations avancées. Par exemple, vous pouvez utiliser la bibliothèque Plotly pour créer des graphiques interactifs en 3D, des graphiques géographiques, etc.

import streamlit as st
import plotly.express as px
 
# Créer un diagramme de dispersion en 3D
fig = px.scatter_3d(x=[1, 2, 3, 4], y=[4, 3, 2, 1], z=[1, 4, 2, 3])
st.plotly_chart(fig)

Dans le code ci-dessus, nous importons d'abord les bibliothèques nécessaires. Ensuite, nous créons un diagramme de dispersion en 3D en utilisant la fonction px.scatter_3d() de Plotly. Enfin, nous affichons le tracé dans Streamlit en utilisant la fonction st.plotly_chart().

Personnalisation des visualisations Streamlit

Streamlit offre plusieurs options pour personnaliser vos visualisations. Par exemple, vous pouvez changer la palette de couleurs, ajouter des titres et des étiquettes, ajuster les échelles des axes, etc.

import streamlit as st
import matplotlib.pyplot as plt
 
# Générer des données aléatoires
data = np.random.normal(0, 1, size=100)
 
# Créer un histogramme avec une couleur et un titre personnalisés
plt.hist(data, bins=20, color='skyblue', edgecolor='black')
plt.title('Mon histogramme personnalisé')
 
# Afficher le tracé dans Streamlit
st.pyplot()

Dans le code ci-dessus, nous générons d'abord des données aléatoires. Ensuite, nous créons un histogramme avec une couleur et un titre personnalisés. Enfin, nous affichons le tracé dans Streamlit en utilisant la fonction st.pyplot().

Conclusion

Streamlit est un outil puissant pour créer des visualisations de données interactives. Avec sa syntaxe simple et sa compatibilité avec diverses bibliothèques de tracé, vous pouvez créer une grande variété de visualisations, des simples diagrammes à barres et graphiques linéaires aux tracés interactifs complexes. Que vous soyez un scientifique des données cherchant à partager vos résultats ou un développeur construisant une application web axée sur les données, Streamlit a tout ce qu'il vous faut.

Avez-vous déjà entendu parler de cet outil génial 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 de type Tableau dans votre propre application Streamlit sans effort.

PyGWalker for Data visualization in Streamlit (opens in a new tab)

Foire aux questions

1. Puis-je créer des diagrammes circulaires dans Streamlit ?

Bien que Streamlit ne dispose pas d'une fonction intégrée pour créer des diagrammes circulaires, vous pouvez les créer en utilisant d'autres bibliothèques comme Matplotlib et les afficher dans Streamlit en utilisant la fonction st.pyplot().

2. Comment puis-je personnaliser mes visualisations dans Streamlit ?

Streamlit offre plusieurs options pour personnaliser vos visualisations. Vous pouvez changer la palette de couleurs, ajouter des titres et des étiquettes, ajuster les échelles des axes, etc. Les options exactes de personnalisation dépendent de la bibliothèque de tracé que vous utilisez.

3. Puis-je créer des tracés interactifs dans Streamlit ?

Oui, Streamlit prend en charge plusieurs bibliothèques de tracé interactives, telles que Plotly, Vega-Lite, etc. Cela vous permet de créer des tracés interactifs sur lesquels les utilisateurs peuvent zoomer, déplacer et survoler pour obtenir des informations plus détaillées.