R中带有ggvis的多线图

multiple line graph with ggvis in R

我确信这是一个简单的问题,但我只找到了困难的答案... 我刚开始做一些 R 编程,我真的很喜欢 dplyr 和 ggvis 包。但是我不知道如何在一个图中组合多个折线图。随着时间的推移,我测量了不同的样本,我的数据看起来像这样:

   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 一起工作吗?我玩了一个for循环但没有成功.. 非常感谢!

您的问题是,对于 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()