Python:以折线图的形式绘制累积营业额的同比比较

2024-10-02 04:36:17 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我面临以下挑战: 我有一个从2018年到2020年7月的数据列表作为日期时间 我在每个日期的职位上都有营业额 我想要实现的是从同一个origo点开始的线条图,显示过去几年的发展。目前,x轴分别显示201820192020

我将每年的营业额累积如下: 2018年:

df_2018=df.loc['2018-01-01':'2018-12-31']
df_2018["Turnovercum"]=df_2018["Turnover"].cumsum()
Line_2018=df_2018["Turnovercum"]
Line_2018

我在2019年和2020年做了同样的练习

然后我把它画成这样:

fig = go.FigureWidget()
fig.add_trace(go.Scatter(x=Line_2020.index, y=Line_2020,
                    mode='lines',
                    name='Turnover 2020'))
fig.add_trace(go.Scatter(x=Line_2019.index, y=Line_2019,
                    mode='lines',
                    name='Turnover 2019'))
fig.add_trace(go.Scatter(x=Line_2018.index, y=Line_2018,
                    mode='lines',
                    name='Turnover 2018'))

你有没有什么建议,如何把这三条线都从同一个origo开始绘制

非常感谢您提供的任何帮助或链接


Tags: nameaddgodfindexmodelinefig
1条回答
网友
1楼 · 发布于 2024-10-02 04:36:17

您需要平移x轴:

fig = go.FigureWidget()
fig.add_trace(go.Scatter(x=Line_2020.index-Line_2020.index.min(), y=Line_2020,
                    mode='lines',
                    name='Turnover 2020'))
fig.add_trace(go.Scatter(x=Line_2019.index-Line_2019.index.min(), y=Line_2019,
                    mode='lines',
                    name='Turnover 2019'))
fig.add_trace(go.Scatter(x=Line_2018.index-Line_2018.index.min(), y=Line_2018,
                    mode='lines',
                    name='Turnover 2018'))

我假设您的index已经是datetime类型,如果不是,您可以简单地添加:

df_2018.index=df_2018.index.astype('datetime64[ns]')

相关问题 更多 >

    热门问题