2012-11-12 103 views
8

我有一個文件,其中包含多個變量從a到k的時間序列數據。使用ggplot繪製時間序列中多個變量的平均值

我想創建一個圖表,繪製變量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() 
+2

您能否提供一箇舊數據集的例子? – jackb

回答

8

這描繪了自舉的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

這描繪了t他的意思是所有的變量+ -1SD的所有值:

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

enter image description here

您可能想要計算計算手段和SD在變量前一年意味着什麼,但我留給你。

但是,我相信一個提升的置信區間會更明智,因爲分佈顯然不是對稱的。它也會變窄。 ;)

當然,你可以對數值進行對數轉換。

+0

羅蘭感謝,也許我還不清楚,但我想要做的是繪製所有這些變量的平均值,而不是置信區間有陰影區域的每一天,這代表了上面和下面的a到k的變化平均每天。 – user1723765

+0

我不知道你的意思是「高於和低於平均值的變化」。 – Roland

+0

1.你取a-k的平均值並繪製每天的圖。 2.每天你會有一些高於和低於平均水平的a-k變量。我希望有一個陰影區域顯示平均值附近有多少變化。 – user1723765