请参阅stat_smooth,您可以使用移动平均线进行平滑处理。
例如,您最终可能会添加如下代码
+ stat_smooth(method='mavg', method_args={'window': 3}, color='cyan')
+ stat_smooth(method='mavg', method_args={'window': 7}, color='blue')
但这不会给你一个传说,因为移动平均值不是数据框中的变量(具有相应的值),即给定你想要绘制的数据并不整洁。因此,如果您想要一个图例,则必须计算移动平均值,创建一个整洁的数据框并绘制整齐的计算平均值。
如何?使用pandas.melt例如
# Compute moving averages
cases['mavg_3'] = cases['Daily lab-confirmed cases'].rolling(window=3).mean()
cases['mavg_7'] = cases['Daily lab-confirmed cases'].rolling(window=7).mean()
# Convert data Long/tidy format
cases_long = cases.melt(
id_vars=['Specimen date', 'Daily lab-confirmed cases'],
value_vars=['mavg_3', 'mavg_7'],
var_name='mavg_type',
value_name='mavg_value'
)
# Plot tidy data
(ggplot(cases_long, aes(x="Specimen date", y="Daily lab-confirmed cases"))
+ geom_point()
+ geom_line(aes(y='mavg_value', color='mavg_type'), na_rm=True)
)