2

我写了很多包,其中的generic情节是ggplot2. 与其他 R 函数调用不同,调用是分层的ggplot,因此最终可以有多个选项(用+符号分隔)来使绘图看起来恰到好处。但是,我不希望有人因我的预定义选项而受苦,并希望他们能够自定义它而无需从头开始重新编写我的函数。我该如何做到这一点?

使用传统函数,我可以使用three dot运算符来传递可选参数。这似乎更难使用ggplot.

可重现的例子

f <- function(df) {
 custom_plot <-  ggplot(df, aes(mpg, disp, color = gear)) + 
geom_point(size = 3) +  
theme(panel.background = element_blank(), panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), panel.border = element_blank(),
        axis.line = element_line(colour = "black"))
        return(custom_plot)
}

生成绘图

f(mtcars)

产生这个:

测试图

我如何概括这个函数,以便有人可以向这个图传递额外的或不同的选项(特别是在它是通用图的情况下)?

如果我的函数定义为:

f <- function(df, ...)

我如何将这些传递给我的ggplot电话?

4

1 回答 1

6

任何知道 ggplot 的人都应该可以修改函数返回的图 - 除非您能想到无法通过 using 修复的特定情况,否则+更好的解决方案可能是尽可能少地进行主题化和自定义,并让人们添加到地块本身。

所有这些自定义都可以正常工作,例如:

mtplot <- f(mtcars)
mtplot + theme_bw()
mtplot + scale_colour_gradientn(colours=c("red", "purple"))
mtplot + labs(title="Add a title!")
mtplot + geom_point(size=5)
于 2012-12-12T03:09:20.467 回答