5.2 KiB
Introduction à Plotly pour Python
Qu'est-ce que Plotly ?
Plotly est une bibliothèque open-source de visualisation de données en Python. Elle permet de produire des graphiques interactifs de haute qualité directement depuis Python, et supporte de nombreux types de graphiques, y compris des graphiques 3D et des cartes géographiques.
Afficher des diagrammes avec Plotly
Plotly propose une variété de diagrammes pour visualiser les données. Voici quelques exemples sur comment afficher des nuages de points, des histogrammes et des histogrammes en barres avec facettes.
Afficher un nuage de points
Pour créer un nuage de points avec Plotly, vous pouvez utiliser la classe Scatter
de plotly.graph_objects
:
import plotly.graph_objects as go
# Supposons que nous ayons deux listes x et y
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))
fig.show()
L'utilisation classique de Plotly consiste à créer un objet de type Figure
représentant un graphique, puis d'y associer un type de diagramme. L'affichage du graphique via la méthode show()
lance un serveur web simple et le navigateur par défaut de votre système pour afficher le contenu.
Notez que ce genre de diagramme est rendu interactif graĉe aux technologies du web; vous pouvez ainsi zoomer ou passer votre souris sur des sections pour observer des boîtes descriptives des données.
Afficher un histogramme avec facettes
Pour créer un histogramme avec facettes avec Plotly, vous pouvez utiliser la classe Histogram
et préparer un graphique à multiples diagrammes via make_subplots
:
from plotly.subplots import make_subplots
# Nous avons un DataFrame df avec une colonne 'value' et une colonne 'category'
fig = make_subplots(rows=1, cols=2)
# Parcourir toutes les catégories différentes de la colonne catégorie
for i, cat in enumerate(df['category'].unique()):
# Et ajouter un diagramme en barres pour les valeurs de la catégorie
fig.add_trace(go.Histogram(x=df[df['category']==cat]['value']), row=1, col=i+1)
fig.show()
Afficher un histogramme en barres avec facettes
Pour créer un histogramme en barres avec facettes avec Plotly, vous pouvez utiliser la classe Bar
et la fonction subplot
:
from plotly.subplots import make_subplots
Supposons que nous ayons un DataFrame pandas df avec une colonne 'value' et deux colonnes catégorielles 'category1' et 'category2'
fig = make_subplots(rows=1, cols=2)
for i, cat in enumerate(df['category1'].unique()):
fig.add_trace(go.Bar(x=df[(df['category1']==cat)]['category2'], y=df[(df['category1']==cat)]['value']), row=1, col=i+1)
fig.show()
Types de graphiques réalisables avec Plotly
Les quelques exemples précédents ont permis de montrer la simplicité d'utilisation de Ploty/Dash pour une variété de diagrammes, mais selon vos besoins, il en existe de nombreux autres, décrits dans la page officielle suivante :
La majorité des diagrammes réalisables avec Plotly sont importables en tant que classes dans le package plotly.express
.
Diagramme en barres simple
Si vous avez un DataFrame
simple avec deux colonnes, par exemple une colonne d'identifiants et une colonne de valeurs associées, vous pouvez très simplement afficher un diagramme en barres avec Plotly :
import pandas as pd
from plotly.express import bar
df = pd.DataFrame(data={"label": ["Citron", "Pomme", "Mangue"], "price": [1.99, 3.97, 6.8]})
plot = bar(df, x="label", y="price")
plot.show()
Diagramme en secteurs groupés
Si vos données contiennent des informations qui peuvent être regroupées en sous-catégories (par ex. vous avez des ventes par ville, et plusieurs villes peuvent appartenir au même pays), un diagramme en secteurs à plusieurs anneaux peut vous permettre d'explorer vos données de façon intéressante :
import pandas as pd
from plotly.express import sunburst
df = pd.DataFrame(data={
"country": ["France", "France", "Spain", "Spain"],
"city": ["Montpellier", "Bordeaux", "Madrid", "Valencia"],
"sales": [150_000, 127_000, 97_200, 137_250]
})
plot = sunburst(df, path=["country", "city"], values="sales")
plot.show()
Configurer le thème des graphiques Plotly
Avec Plotly, vous pouvez personnaliser l'apparence de vos graphiques en utilisant des thèmes.
Styles des graphiques
Plotly offre plusieurs thèmes prédéfinis que vous pouvez appliquer à vos graphiques :
import plotly.io as pio
pio.templates.default = "plotly_dark" # Exemple avec le thème "plotly_dark"
Définir des palettes de couleurs
Vous pouvez également personnaliser les couleurs utilisées dans vos graphiques avec Plotly :
fig = go.Figure(
data=go.Scatter(x=x, y=y, mode='markers', marker=dict(color='rgba(152, 0, 0, .8)'))
)
fig.show()
Dans cet exemple, nous avons utilisé la propriété marker
pour changer la couleur des points dans le nuage de points.