Publié le 13 novembre 2024
Affichage des graphiques
Lecture 2 min
Plotly express : import plotly.express as px
Graphes possibles :
2 axes :
fig = px.line(df,
x='date',
y=['sum', 'median'],
markers=True # Affichage des points
)
3 axes :
fig = px.line(df,
x='date',
y='annonces',
color='region',
)
Manuel :
fig = go.Figure()
for i, column_value in enumerate(df[column_line].unique()):
df_subset = df[df[column_line] == column_value]
fig.add_trace(
go.Scatter(
x=df_subset[column_x],
y=df_subset[column_y],
mode='lines',
name=str(column_value),
fillcolor=colors[i]
)
)
for i, row in df.groupby(column_line).first().reset_index().iterrows():
fig.add_annotation(
x=row[column_x],
y=row[column_y],
text=row[column_line],
showarrow=False,
yshift=10,
xshift=10,
font=dict(family="Arial", size=14, weight='bold', color=colors[i])
)
Graphes possibles :
fig = px.scatter_matrix(df,
dimensions=columns,
color='year',
)
fig.update_traces(diagonal_visible=False)
fig = px.imshow(
df_graph.loc[:, columns].corr(),
zmin=-1,
zmax=1,
text_auto=".2f",
color_continuous_scale="rdbu", # -1 : Rouge, 0 : Blanc, 1 : Bleu
)
df_corrs = pd.DataFrame({
"Feature": columns_x,
})
for target in columns_y:
df_corrs[target] = df[[target, *columns_x]].corr().loc[target, columns_x].values
fig = px.imshow(
df_corrs.set_index("Feature").T,
text_auto="0.2f",
color_continuous_scale="rdbu",
zmin=-1,
zmax=1,
)
fig = px.box(
df,
x=x,
y=y,
)
Couleurs :
fig = px.line(df,
color_discrete_sequence=color,
)
Annoter les lignes :
for i, serie_name in enumerate([trace.name for trace in fig.data]):
subset = df.loc[df[color].astype(str) == serie_name].reset_index()
fig.add_annotation(
x=subset[x][0],
y=subset[y][0],
text=serie_name,
showarrow=False,
yshift=0,
xshift=-20,
textangle=0,
font=dict(
family="Arial",
size=14,
color=colors[i]
)
)
Modification des tracès :
fig.for_each_trace(
lambda t: t.update(
name = names[t.name],
legendgroup = names[t.name],
hovertemplate = t.hovertemplate.replace(t.name, names[t.name])
)
)
Nom des axes :
fig = px.line(df,
labels={ # Renomage des axes
'date_day': 'Date',
'annonces': "Nombre d'annonces",
'region': 'Région'
},
)
Orientation de la légende sur X : fig.update_xaxes(tickangle=45)
fig.update_layout(
title="Nombre d'annonces par jour",
height=600,
width=1000,
showlegend=True,
)
Image : fig.write_image(f"../graphs/{filename}.jpg", width=1920, height=1080, scale=2)
Html : fig.write_html(f"../graphs/{filename}.html")
Exemple de schéma de couleurs de plotly express : px.colors.qualitative.Dark24
colors_32 = [
"#CC00FF", # Violet clair
"#9933FF", # Violet foncé
"#6633FF", # Violet
"#0066FF", # Bleu foncé
"#3399FF", # Bleu moyen
"#00FFFF", # Cyan
"#33CCFF", # Bleu clair
"#33CCCC", # Turquoise
"#33CC99", # Vert bleuâtre
"#33CC33", # Vert émeraude
"#66CC00", # Vert foncé
"#99CC00", # Vert moyen
"#FFCC00", # Orange clair
"#FF9933", # Orange
"#FF6347", # Orange vif
"#FF0000", # Rouge vif
"#CC00FF", # Violet clair
"#9933FF", # Violet foncé
"#6633FF", # Violet
"#0066FF", # Bleu foncé
"#3399FF", # Bleu moyen
"#00FFFF", # Cyan
"#33CCFF", # Bleu clair
"#33CCCC", # Turquoise
"#33CC99", # Vert bleuâtre
"#33CC33", # Vert émeraude
"#66CC00", # Vert foncé
"#99CC00", # Vert moyen
"#FFCC00", # Orange clair
"#FF9933", # Orange
"#FF6347", # Orange vif
"#FF0000" # Rouge vif
]