gpt4 book ai didi

python - 绘制按小时和星期几分组的时间序列

转载 作者:行者123 更新时间:2023-12-05 05:05:54 27 4
gpt4 key购买 nike

我有一年多的每小时时间序列数据,并希望绘制一周中每一天的平均每小时测量值。我运行了以下代码,我的数据采用以下格式(我之前为一周中的几天创建了列)。

df = df.groupby([df['date_UTC'].dt.hour, df['w_day']]).pm2_5_ugm3.mean().reset_index().dropna()

date_UTC w_day pm2_5_ugm3
0 0 Friday 11.868802
1 0 Monday 12.741524
2 0 Saturday 13.346273
3 0 Sunday 13.093804
4 0 Thursday 14.525096
... ... ... ...
163 23 Saturday 12.836788
164 23 Sunday 12.712683
165 23 Thursday 12.046935
166 23 Tuesday 12.043133
167 23 Wednesday 14.164027

我最终想要一个看起来像下面这样的图,但我不确定如何使用 seaborn/matplotlib 来绘制它。

enter image description here

更新:

我使用了@Arnold Vialfont 的建议,这基本上得到了我正在寻找的结果,但 facetplot 似乎不允许我在引入 hue 时绘制图例。然后我使用了 factorplot 但是这个图似乎不能产生一个线图,这正是我需要的。有没有办法使用 factorplot 并让 hue 产生图例?

col_order=["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]

sns.set_style("white")
ax = sns.FacetGrid(df, col="w_day", col_wrap=7, height=6, col_order=col_order, hue ='Zone')
ax.map(sns.lineplot, "date_UTC", "pm2_5_ugm3")

Hue 不产生图例

enter image description here

这里使用 factorplot 我有一个图例,但无法根据需要生成线图。

ax = sns.catplot(x="date_UTC", y="pm2_5_ugm3", col="w_day", hue = 'Zone',
data=df, ci=None, aspect=.6)

enter image description here

最佳答案

您可以按以下方式使用 seaborn,其中 col_wrap 允许选择每行的图形数量:

g = sns.FacetGrid(df, col="w_day", col_wrap=7, height=4)
h.map(sns.lineplot, "date_UTC", "pm2_5_ugm3")

请注意,与您所说的相比,您最终想要的只有一条曲线。

关于python - 绘制按小时和星期几分组的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com