2015-10-29 44 views
0

我相信這是一個簡單的問題,但我發現只有困難的答案... 我剛開始做一些R編程,我真的很喜歡dplyr和ggvis包..但是我可以不知道如何在一個圖中組合多個線圖。我測得不同樣品隨着時間的推移,我的數據看起來是這樣的:ggvis在R多線圖

time <-1:10 
    m = matrix(c(2, 4, 3, 1, 5, 7),nrow=10,ncol=3,byrow = FALSE) 
    colnames(m)<-c("sample1","sample2","sample3") 
    mdata <- data.frame(time, m) 
    data <-tbl_df(data) 

我知道它的工作原理鏈各層在一起,但會不會得心應手其中包含許多樣品我的數據集....

data %>% ggvis() %>% layer_paths(~time,~sample1) %>% layer_paths(~time,~sample2)%>%layer_paths(~time, ~sample3) 

任何建議,使這項工作與ggvis?我玩了一個循環,但沒有成功.. 非常感謝!這裏

回答

0

你的問題是,您的數據需要在長格式而不是寬幅ggvis能夠繪製。您可以使用tidyr進行整形。爲了進一步的參考,我向你推薦cheatsheet關於重組數據。

library(ggvis) 
library(tidyr) 
library(dplyr) 

time <- 1:10 
m <- matrix(c(2, 4, 3, 1, 5, 7), nrow = 10, ncol = 3, byrow = FALSE) 
colnames(m) <- c("sample1", "sample2", "sample3") 
mdata <- data.frame(time, m) 
data <- tbl_df(mdata) 


# gather your data into long format 
data <- data %>% 
    gather(sample, value, -time) 

data %>% 
    ggvis(~time, ~value, stroke = ~sample) %>% 
    layer_lines() 

plot

+0

是的,那正是我一直在尋找!非常感謝你!!! 我沒有意識到ggvis中的寬格式和長格式之間的區別! – Laccel