私はmagrittr
のパイプでggplotオブジェクトに定義されたカスタム関数を使いたいと思います。しかし、私はggplotオブジェクトをこの関数に渡すことはできません。ここでggplotオブジェクトをパイプ転送する方法は?
は簡単な例です:
library(ggplot2)
library(magrittr)
my_plot_function <- function(plot) {
plot + geom_hline(yintercept = 3, linetype = 'dashed')
}
data(mtcars)
p <- mtcars %>%
ggplot() +
geom_point(aes(mpg, wt))
my_plot_function(p)
次のように私はチェーン内my_plot_function()
を使用することができればそれは素晴らしいことだ:
mtcars %>%
ggplot() +
geom_point(aes(mpg, wt)) %>%
my_plot_function()
はしかし、それは唯一とエラーになりますレイヤーはプロット自体の代わりにmy_plot_function()
に渡されます。どのように私はパイプでプロットを渡すことができますか?
ので、この作業を行うための唯一の方法は、 '%>%' sの中括弧の間ggplottingのものを置くことです。しかし、それはおそらくあなたが望むものではありません。 –
@KonradRudolphあなたは 'mtcars%>%(ggplot()+ geom_point(aes(mpg、wt)))%>%my_plot_function()'を意味しますか?それは動作していないようです。 – janosdivenyi
私は最初のコメントの記述が間違っていたので、あなたはあなたのコードを暗示していましたが、あなたは '(mtcars%>%ggplot()+ geom_point(aes(mpg、wt)))%>%my_plot_function()書きました。 –