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()
我确信这是一个简单的问题,但我只找到了困难的答案... 我刚开始做一些 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()