2015-10-29 43 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