J'ai des données de ~3 ans organisées par mois et année. Je souhaite représenter ces données sous forme de diagramme à barres par mois et par année, avec le mois en abscisse et l'année en ordonnée. Le problème est que les données commencent en septembre 2018, donc le premier mois à tracer est septembre, mais je veux que ce soit janvier. J'ai essayé de le faire, mais les années sont alors en ordre décroissant, ce que je ne veux pas non plus. Voici un exemple de code.
import datetime
import pandas as pd
import plotly.graph_objects as go
import random
df = pd.DataFrame({})
numdays = 1000
base = datetime.datetime.today()
date_list = [base - datetime.timedelta(days=x) for x in range(numdays)]
price = [random.randint(1,10) for i in range(numdays)]
df['price'] = price
df.index = date_list
df = df.resample('MS').sum()
df['month'] = df.index.month_name()
df['month number'] = df.index.month
df['year'] = df.index.year
year_list = df['year'].unique().tolist()
fig = go.Figure()
for year in year_list:
df_aux = df[df.year==year]
df_aux = df_aux.sort_values(by=['month number'])
fig.add_trace(go.Bar(x=df_aux.month, y=df_aux['price'], \
name=year))
fig.show()
C'est ce que je reçois, mais cela commence en septembre et je veux que ce soit en janvier :