代码之家  ›  专栏  ›  技术社区  ›  J.Con

带有dplyr和ggplot-r的唯一轴标签

  •  3
  • J.Con  · 技术社区  · 8 年前

    我正在使用 purrr 使多重 ggplot2

    我最好的尝试(下面)是只能得到字符串的第一个值,所以所有3个图的X轴都表示 1% explained variance ,当我想要三个不同的名字 1%解释差异 , 2% explained variance 3% explained variance . 谢谢你

    library(tidyverse)
    
    new<-c(1,2,3)
    
    iris%>%
      split(.$Species) %>%
      purrr::map2(.y = names(.),
                  ~ ggplot(data=., aes(x=Sepal.Length, y=Sepal.Width))+
                    geom_point()+
                    labs(x=paste(round(new,2),'% explained variance', sep=''))
      )
    
    1 回复  |  直到 8 年前
        1
  •  5
  •   akrun    8 年前

    map2 我们可以指定 .y 作为 seq_along(.) 然后用它来索引“new”,因为“new”是一个长度为3的向量。

    l1 <- iris %>% 
            split(.$Species) %>% 
            map2( seq_along(.), ~ 
                 ggplot(data=., aes(x=Sepal.Length, y=Sepal.Width))+
                    geom_point()+
                    labs(x=paste(round(new[.y],2),'% explained variance', sep='')))
    

    注意:如果我们不使用 names ,然后简单地将“new”传递为 Y (这里是 list 不使用元素)


    绘图可以保存为单个PDF

    library(gridExtra)
    l2 <- map(l1, ggplotGrob)
    ggsave(marrangeGrob(grobs = l2, nrow = 1, ncol =1), file = "plots.pdf")
    

    或者将其保存为一个PNG,在同一页上有多个绘图

    ggsave(marrangeGrob(grobs = l2, nrow = 3, ncol =1), file = "plots.png")
    

    enter image description here