2017-06-08 39 views
1

我有多個採樣多次(不同日期)的站點,我運行時間序列實驗以獲取該系列中每個時間點的值(對於每個站點是4個時間點)。我想繪製每個時間序列($ Time..hours。)(x軸)與它們的值(Sample.N2O.gas ... ppm。)(y軸)的關係,多個圖一次查看所有這些數據。在R中使用dplyr創建多個時間序列圖

我是R的新手,所以我不確定附加數據的圖像是否有用。 Data

我到目前爲止已經發現的是:

plots <- data %>% group_by(Site, Date, Treatment, Rep) %>% do(plots=ggplot(data=.)) + 
    aes(x=Time..hours., y=Sample.N2O.gas...ppm.) + geom_point() 

但是當我運行圖,我只是得到一個輸出表「#A Tibble 149x5"

下面是我複製。從我的dput輸出:

data = structure(list(Site = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("QA1", "QA1 ", 
"QA2", "W1", "W2", "W3", "W4"), class = "factor"), Date = structure(c(1462860000, 
1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 
1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 
1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 
1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 
1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 1462860000, 
1462860000), class = c("POSIXct", "POSIXt"), tzone = ""), Treatment = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Control", 
"DEA", "Denit"), class = "factor"), Rep = c(1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), Time..hours. = c(0.333333333, 
1.166666667, 2, 2.833333333, 0.333333333, 1.166666667, 2, 2.833333333, 
0.333333333, 1.166666667, 2, 2.833333333, 0.333333333, 1.166666667, 
2, 2.833333333, 0.333333333, 1.166666667, 2, 2.833333333, 0.333333333, 
1.166666667, 2, 2.833333333, 0.333333333, 1.166666667, 2, 2.833333333, 
0.333333333, 1.166666667, 2, 2.833333333), Sample.N2O.gas...ppm. = c(0.02536993437111, 
0.02539270198174, 0.0258252865837, 0.02236460976796, 0.01136785383374, 
0.00886341666446, 0.01291605135657, 0.01583030551719, 0.05517273668559, 
0.15960776664476, 0.12206397671612, 0.10999714308229, 0.08618222236346, 
0.062344534034, 0.0527366023482, 0.05845127261629, 0.03570642959706, 
0.05093796110844, 0.04784156606278, 0.05763163863362, 24.1815481999959, 
43.9535598867979, 76.0087551511654, 97.5847143861169, 26.1044322512172, 
42.2811119155545, 82.8088875655402, 109.127381921808, 24.9257144556248, 
46.2630281688243, 84.5042194191463, 102.597585589484)), .Names = c("Site", 
"Date", "Treatment", "Rep", "Time..hours.", "Sample.N2O.gas...ppm." 
), row.names = c(NA, 32L), class = "data.frame") 
+1

而不是顯示數據的圖片,使用'dput'把你的數據變成你可以共享的東西。這將幫助我們幫助你。 – lebelinoz

+1

這是否更好?對不起,我的noobness –

+0

完美。我的回答是否有意義? – lebelinoz

回答

1

那是因爲你已經創建地塊的列表(技術上地塊tibble)要查看列表中的第一個情節,說,你需要做plots[[1]]

附錄:實際上,您的代碼在其當前的形式不起作用。你的意思是做下列事情嗎?

plots <- data %>% group_by(Site, Date, Treatment, Rep) %>% do(plots=ggplot(data=.) + 
    aes(x=Time..hours., y=Sample.N2O.gas...ppm.) + geom_point()) 

如果是這樣,那麼(奇怪的是),這些情節被埋在名爲情節的列表中。您可以通過plots$plots[[1]]訪問第一個,並通過plots$plots顯示所有人。

+0

這工作!謝謝你的魔法! –

+0

有沒有快速添加適合每個圖形的標題的方法?當我查看每個圖表時,我不確定我正在查看哪個樣本,直到查看數據。 –

+0

'ggtitle'。請參閱http://www.cookbook-r.com/Graphs/Titles_(ggplot2)/ – lebelinoz

0

是否可以從所有地塊創建一個網格?感謝幫助!並排將是真棒

+0

另外,如果您可以將其作爲問題提出並在評論中說明問題,我可以爲您解答。這將是最簡單的方法 –

+0

你還需要幫助嗎? –

+0

對不起,我還沒有回答!我真的解決了它。感謝您的答覆!! – N11