Apply a ggplot-function per group with dplyr and set title per group

后端 未结 3 2043
孤独总比滥情好
孤独总比滥情好 2020-12-01 06:25

I would like to create one separate plot per group in a data frame and include the group in the title.

With the iris dataset I can in base R and ggplot do this

3条回答
  •  执笔经年
    2020-12-01 07:09

    From dplyr 0.8.0 we can use group_map :

    library(dplyr, warn.conflicts = FALSE, quietly = TRUE)
    #> Warning: le package 'dplyr' a été compilé avec la version R 3.5.2
    library(ggplot2)
    plots3 <- iris %>%
      group_by(Species) %>%
      group_map(~tibble(plots=list(
        ggplot(.) + aes(x=Petal.Width, y=Petal.Length) + geom_point() + ggtitle(.y[[1]]))))
    
    plots3
    #> # A tibble: 3 x 2
    #> # Groups:   Species [3]
    #>   Species    plots   
    #>           
    #> 1 setosa     
    #> 2 versicolor 
    #> 3 virginica  
    plots3$plots[[2]]
    

    Created on 2019-02-18 by the reprex package (v0.2.0).

提交回复
热议问题