R 如何通过将主题作为ggplot2中函数的参数传递来绘制不同的主题?

R 如何通过将主题作为ggplot2中函数的参数传递来绘制不同的主题?,r,plot,ggplot2,R,Plot,Ggplot2,我引用了一些关于传递函数的文章作为参数,我希望随后可以使用ggplot2生成具有不同主题的情节。以下两个功能可以正确绘制: # plot data dat <- diamonds[sample(1:nrow(diamonds), 5000), ] gplot1 <- function(FUN = theme_bw) { ggplot(dat, aes(carat, price))+ geom_point(aes(colour = color))+ FUN

我引用了一些关于传递函数的文章作为参数,我希望随后可以使用ggplot2生成具有不同主题的情节。以下两个功能可以正确绘制:

# plot data    
dat <- diamonds[sample(1:nrow(diamonds), 5000), ]

gplot1 <- function(FUN = theme_bw) {
  ggplot(dat, aes(carat, price))+
    geom_point(aes(colour = color))+
    FUN()
}
gplot1(theme_gray)

gplot2 <- function(FUN) {
  theme_set(FUN)
  ggplot(dat, aes(carat, price))+
    geom_point(aes(colour = color))
}
gplot2(theme_bw())
#绘图数据

dat您可以使用
lappy

ps <- lapply(themes1, gplot1)
ps[[1]]

对于(主题1中的我)打印(gplot1(i))
我首先阅读了Marco Sandri的答案,我尝试了“对于(主题1中的我:长度(ps))打印(ps[[i]])”,得到了我需要的,然后我注意到了您的评论,我认为您的代码比我的更简洁,非常感谢!
ps <- lapply(themes1, gplot1)
ps[[1]]
ps[[2]]