Streamlit & seaborn

Bonsoir ,

J’essaye de faire fonctionner ce code sur Streamlit (qui fonctionne pourtant sur Jupyter) mais je n’y arrive pas.

fig = plt.figure(figsize=(10, 4))
sns.lineplot(x=« season », y=« goal_away_ft », data=df_Arsenal, color=« black », label=« à l’extérieur »);
sns.lineplot(x=« season », y=« goal_home_ft », data=df_Arsenal, color=« red », label=« à domicile »)
plt.title(« Evolution des buts marqués pour Arsenal »);
st.plotly_chart(fig)

Je reçois l’erreur suivante :

Merci de votre aide

Bonjour Iheb,

Dans votre code, vous utilisez st.plotly_chart(fig) ce qui fait référence à la bibliothèque plotly sur un graphe que vous tentez d’affichez avec seaborn. Il faudrait plutôt utiliser st.pyplot(fig) faisant référence à matplotlib.pyplot qui est utilisé par seaborn.

Je vous laisse les liens de la documentation streamlit concernant les différents graphes disponibles :

Bien à vous,

Yohan

Évidemment …Merci

J’en profite pour demander pourquoi est ce que sur seaborn est ce que j’ai ce graph :

alors que sur plotly avec le code suivant :

fig = px.line(df_Arsenal, x=« season », y=« goal_away_ft »)
st.plotly_chart(fig)

j’obtiens ce graph :

Merci de votre aide
Iheb

J’imagine que c’est dû aux deux labels de votre premier graphe : domicile/extérieure qui ne sont pas présents sur le graphe plotly.

Yohan

du coup avec plotly , on ne peut rien faire ?

Vous pouvez éventuellement essayer avec l’argument line_group qui propose la fonction ou bien regrouper au préalable puis afficher sur le même graphe.

Yohan

je ne vois pas ce que j’ai à regrouper . Dans « line_group » j’ai essayé de mettre « season » ensuite j’ai essayé avec « goal_away_ft » mais sans résultat…avez vous une idée ?

Vous avez bien deux catégorie : A l’extérieure et à domicile ?

Quelle est la variable qui représente cette information sur vos données ?

à l’extérieur et à domicile ne sont que des labels , ils ne regroupent rien sur seaborn et il n’y’a pas de variables qui correspondent à ces labels…

Si il y a deux courbes, il y a forcément une troisième variable qui rentre en compte.

Les labels sont apparus sans aucune précision de votre part ?

Avez-vous le code associé à ce graphe seaborn ?

sur seaborn , on a deux variables x et y (qui ne sont pas les mêmes pour chaque lineplot) et la data

Ok donc vous avez bien deux figures. Il faut faire également deux figures sur plotly et les afficher dans un même graphe.

si ça ne marche pas pour une, ça ne marchera pas pour les deux et voici l’output :

il y’a un problème quelque part ; sur seaborn , j’ai de bons graphs mais sur matplotlib et plotly ça me fait des graphs bizarres comme celui que vous trouverez en PJ