使用ggplot绘制时间序列中多个变量的平均值

时间:2012-11-12 09:22:16

标签: r ggplot2

我有一个文件,其中包含从a到k的多个变量的时间序列数据。

我想创建一个图表,绘制变量a到k随时间的平均值,并在该平均线的上方和下方添加一个平滑区域,表示每天的最大和最小变化。

所以类似于置信区间,但是在平滑版本中。

这是数据集:     https://dl.dropbox.com/u/22681355/co.csv

这是我到目前为止的代码:

library(ggplot2)
library(reshape2)
meltdf <- melt(df,id="Year")
ggplot(meltdf,aes(x=Year,y=value,colour=variable,group=variable)) + geom_line()

1 个答案:

答案 0 :(得分:10)

这描绘了自举95%置信区间:

ggplot(meltdf,aes(x=Year,y=value,colour=variable,group=variable)) +
  stat_summary(fun.data = "mean_cl_boot", geom = "smooth")

ggplot smoothed bootstrap confidence

这描绘了所有变量的所有值的平均值+ -1SD:

ggplot(meltdf,aes(x=Year,y=value)) +
  stat_summary(fun.data ="mean_sdl", mult=1, geom = "smooth")

enter image description here

你可能想在计算变量的均值和SD之前计算年份,但我把它留给你。

然而,我相信一个boostrap置信区间会更明智,因为分布明显不对称。它也会更窄。 ;)

当然,您可以对您的值进行日志转换。