如何将其他参数传递给函数内生成的ggplot?

Mai*_*ura 2 r ggplot2

我写了许多包,generic情节是一个ggplot2.一个ggplot呼叫,不像其它的R函数调用,是分层这样一个最终可能会以几种方式(通过分离+的迹象)获得剧情看恰到好处.但是,我不希望有人通过我预先定义的选项受到影响,并希望他们能够自定义它而无需从头开始重新编写我的函数.我该如何做到这一点?

使用传统函数,我可以使用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)
}
Run Code Online (Sandbox Code Playgroud)

生成情节

f(mtcars)
Run Code Online (Sandbox Code Playgroud)

产生这个:

测试图

如何推广此功能,以便某人可以将更多或不同的选项传递给此图(特别是在通用图的情况下)?

如果我的功能被定义为:

f <- function(df, ...)
Run Code Online (Sandbox Code Playgroud)

我如何将这些传递给我ggplot

Mar*_*ius 6

对于知道ggplot的人来说,你的函数返回的图应该是可修改的 - 除非你能想到使用不能修复的特定情况+,一个更好的解决方案可能是做尽可能少的主题和定制,并让人们添加对于情节本身.

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

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)
Run Code Online (Sandbox Code Playgroud)