R语言 如何将ggtitle中的列表名称附加到map函数中

jvidinwx  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(97)

我想举个例子

plot_list2 = split(mtcars, mtcars$cyl) %>% 
              map(function(q) ggplot(q, aes(x= mpg)) + 
                 geom_histogram(aes(y=..density..), 
                 color="darkblue", fill="lightblue")+ 
                 geom_density(alpha=.2, fill="#FF6666") + 
                 theme_classic()+ 
                 ggtitle(sprintf('Distribution for', names(q))))

我的目标是使用一个唯一的代码,以便在ggtitle中,我可以为split生成的列表添加每个名称。我应该在这里换什么?
谢谢

dz6r00yl

dz6r00yl1#

我会这样做:

library(dplyr)
library(purrr)
plot_list2 = split(mtcars, mtcars$cyl) %>%
  map(function(q) ggplot(q, aes(x= mpg)) + 
        geom_histogram(aes(y=..density..), 
                       color="darkblue", fill="lightblue")+ 
        geom_density(alpha=.2, fill="#FF6666") + 
        theme_classic()+
          labs(title = paste0("distribution for cyl ",unique(q$cyl))))

因为cyl在用split创建的列表的每个元素中是唯一的,所以你可以使用cly的值来绘制标题。这里我使用了labs而不是GGtitle,但应该是一样的。此外,您不一定需要purrr::map。这里的base::lapply工作原理相同。请记住,要明确您在示例代码中使用的库(即library(dyplr)library(purrr)

相关问题