2

generic私はプロットがである多くのパッケージを書きますggplot2。他のggplotR関数呼び出しとは異なり、呼び出しは階層化され+ているため、プロットを適切に表示するために、いくつかのオプション(記号で区切る)を使用することができます。ただし、事前定義されたオプションで誰かが苦しむことは望ましくなく、関数を最初から書き直さずにカスタマイズできるようにしたいと思います。どうすればこれを達成できますか?

従来の関数では、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

The plots returned by your functions should be modifiable for anyone who knows ggplot- unless you can think of specific cases that can't be fixed by using +, a better solution might be to do as little theming and customization as possible, and let people add to the plots themselves.

All of these customizations work fine, for example:

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 に答える