我有3年左右的数据,按月份和年份组织。我想将这些数据按月份和年份绘制为条形图,以月份为x轴,以年份为轨迹。问题是数据开始于2018年9月,所以绘制的第一个月是9月,但我希望是1月。我试过这么做,但是年复一年,我也不想这么做。 下面是一个代码示例
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()
这是我得到的,但它在九月开始,我希望它是一月:
通过对categorical axes from plotly的引用,我能够使用
categoryorder
并设置catergoryarray
,这允许您设置要用于轴的顺序列表从文件/参考中:
而且:
我添加的代码行是:
这给出了一个输出,看起来像这样:
完整代码:
相关问题 更多 >
编程相关推荐