【问题标题】:multiple line graph with ggvis in RR中带有ggvis的多线图
【发布时间】:2015-10-29 15:42:22
【问题描述】:

我确信这是一个简单的问题,但我发现只有困难的答案...... 我刚开始做一些 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 循环但没有成功.. 非常感谢!

【问题讨论】:

    标签: r ggvis


    【解决方案1】:

    您的问题是,您的数据需要采用 长格式 而不是 宽格式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()
    

    【讨论】:

    • 是的,这正是我想要的!非常感谢你!!!我不知道 ggvis 中宽格式和长格式之间的区别!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多