Diagramme des zones empilées de Plotly
Ce didacticiel abordera la création d’un graphique en aires empilées à l’aide du paramètre stackgroup
de la fonction scatter()
de Plotly.
Graphique à aires empilées de Plotly
Un graphique en aires empilées contient plusieurs zones de blocs de données différents. Nous pouvons tracer plus d’une zone sur le même graphique en utilisant le paramètre stackgroup()
de la fonction scatter()
.
Après avoir créé un nuage de points, nous pouvons ajouter une autre zone en utilisant la fonction add_trace()
, qui ajoute des données dans la même figure.
Par exemple, utilisons des données aléatoires pour créer un nuage de points, puis ajoutons une autre zone à l’aide de la fonction add_trace()
. Voir le code ci-dessous.
import plotly.graph_objects as go
x = [1, 2, 3, 4]
plot = px.Figure(
go.Scatter(name="Data One", x=x, y=[100, 200, 500, 673], stackgroup="one")
)
plot.add_trace(
go.Scatter(name="Data Two", x=x, y=[56, 123, 982, 213], stackgroup="one")
)
plot.show()
Production :
Nous pouvons également modifier la normalisation du graphique en utilisant l’argument groupnorm
et en définissant sa valeur sur pourcentage pour la somme du groupe de piles.
Par exemple, traçons le graphique ci-dessus en utilisant des valeurs normalisées. Voir le code ci-dessous.
import plotly.graph_objects as go
x = [1, 2, 3, 4]
plot = px.Figure(
go.Scatter(
name="Data One",
x=x,
y=[100, 200, 500, 673],
stackgroup="one",
groupnorm="percent",
)
)
plot.add_trace(
go.Scatter(name="Data Two", x=x, y=[56, 123, 982, 213], stackgroup="one")
)
plot.show()
Production :
Nous pouvons utiliser la fonction add_trace()
pour ajouter une autre zone dans le nuage de points après sa création. Néanmoins, nous pouvons également le faire lors de la création de la figure en enregistrant les données dans une variable, puis en utilisant cette variable pour tracer le tracé de la zone empilée.
Par exemple, créons à nouveau le tracé d’aire empilée. Voir le code ci-dessous.
import plotly.graph_objects as go
x = [1, 2, 3, 4]
data = [
go.Scatter(name="Data One", x=x, y=[100, 200, 500, 673], stackgroup="one"),
go.Scatter(name="Data Two", x=x, y=[56, 123, 982, 213], stackgroup="one"),
]
plot = px.Figure(data)
plot.show()
Production :