每周和周数的情节线图

2024-09-26 22:10:41 发布

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

我有以下数据。这表示1月份发生的次数:

date      value    WeekDay WeekNo Year   Month
2018-01-01  214.0   Monday  1    2018    1
2018-01-02  232.0   Tuesday 1    2018    1
2018-01-03  147.0   Wed     1    2018    1
2018-01-04  257.0   Thursd  1    2018    1
2018-01-05  164.0   Friday  1    2018    1
2018-01-06  187.0   Saturd  1    2018    1
2018-01-07  201.0   Sunday  1    2018    1
2018-01-08  141.0   Monday  2    2018    1
2018-01-09  152.0   Tuesday 2    2018    1
2018-01-10  167.0   Wednesd 2    2018    1
2018-01-15  113.0   Monday  3    2018    1
2018-01-16  139.0   Tuesday 3    2018    1
2018-01-17  159.0   Wednesd 3    2018    1
2018-01-18  202.0   Thursd  3    2018    1
2018-01-19  207.0   Friday  3    2018    1
...         ...        ...       ...    ...

WeekNo是一年中的周数

我的目标是绘制一个线条图,显示这个月每周发生次数的变化。因此,我希望每周都有x轴上的工作日、y轴上的事件和不同的线,每个线都有不同的颜色(以及一个带有与每周对应的颜色的图例)

有人知道怎么做吗?非常感谢


Tags: 数据datevalue颜色次数yearmonday月份
1条回答
网友
1楼 · 发布于 2024-09-26 22:10:41

您可以首先将数据框重塑为一种格式,其中列为周数,每个工作日一行。然后,使用plot方法:

reshaped = (df
            .assign(date=lambda f: pd.to_datetime(f.date))
            .assign(dayofweek=lambda f: f.date.dt.dayofweek, 
                    dayname=lambda f: f.date.dt.weekday_name)
            .set_index(['dayofweek', 'dayname', 'WeekNo'])
            .value
            .unstack()
            .reset_index(0, drop=True))

print(reshaped)
reshaped.plot(marker='x')
WeekNo         1      2      3
dayname                       
Monday     214.0  141.0  113.0
Tuesday    232.0  152.0  139.0
Wednesday  147.0  167.0  159.0
Thursday   257.0    NaN  202.0
Friday     164.0    NaN  207.0
Saturday   187.0    NaN    NaN
Sunday     201.0    NaN    NaN

plot

相关问题 更多 >

    热门问题