0
我把傳遞函數的一些文章作爲參數,我希望我可以用ggplot2生成不同主題的地塊。以下2個函數可以正確繪圖:如何通過在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())
但是我怎麼能通過一個函數調用繪製不同的主題? 我試圖gplot1()和什麼也沒得到,而我試圖gplot2()我得到警告消息,沒有任何劇情:
themes1 <- c(theme_bw, theme_gray)
for(i in themes1) gplot1(i)
# nothing
themes2 <- c(theme_bw(), theme_gray())
for(i in themes2) gplot2(i)
# warning messages and without any plot
誰能告訴我嗎?非常感謝!
'的(我在themes1)打印(gplot1(I))' – baptiste
我第一次讀到馬可·桑德里的答案,我試過「for(in 1:length(ps))print(ps [[i]])」並且得到我需要的,然後我只注意到你的評論,我認爲你的代碼比m更簡潔恩,非常感謝你! – ycc