我有一个包含3个数值的数据框
T
kWh
Month
T
变量的值介于1到48之间,而kWh
变量是离散的。
我正在尝试显示一个折线图,以显示每个kWh
的每个T
的平均Month
的线形,每个Month
都有一条单独的线(平均{ Y轴上的{1}}和X轴上的kWh
。
我的方法是以下
T
最后像这样绘制它
grouped_by_t = group_by(df, T)
summarised_by_t = summarise(grouped_by_t, Average=mean(kWh, na.rm=TRUE), Month=Month)
不幸的是,这只是在图的边缘显示了一条带有颜色渐变的线,这不是我想要的。
答案 0 :(得分:1)
在没有df
数据集样本的情况下,我已经生成了完整的废话数据,至少应该能够按照您要完成的任务给出图表。
尽管可以肯定地通过预先汇总数据集来完成,但您也可以基于设置stat_summary()
的美观性,利用color
为您进行平均。在这种情况下,stat_summary()
将使用该美学作为计算平均值的分组美学。
这是生成我可怕的数据集的代码和绘图代码。还要注意,我包括在绘制之前设置df$Month
的级别,否则ggplot2
将默认以字母顺序表示月份。
library(ggplot2)
set.seed(1234)
df <- data.frame(
Month=rep(month.name, each=200),
T=sample(1:48, 2400, replace=TRUE),
kWh=rnorm(2400, 500, 140))
df$Month <- factor(df$Month, levels=month.name)
ggplot(df, aes(x=T, y=kWh, color=Month)) +
stat_summary(geom='line', fun=mean)
对于更多上下文,如果您不知道,则为fun=
值设置的函数将返回一个用于y
美感的值。以纯文本格式,此处的stat_summary()
函数被设置为绘制一个geom_line
,表示为每个mean
的{{1}}的{{1}}值,每个颜色用颜色分隔df$kWh
。