gpt4 book ai didi

r - 如何通过管道转发 ggplot 对象?

转载 作者:行者123 更新时间:2023-12-01 09:17:26 24 4
gpt4 key购买 nike

我想使用在 ggplot 对象上定义的自定义函数 magrittr的管子。但是,我无法将 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()而不是情节本身。我怎么能用管道传递情节?

最佳答案

您可以尝试定义一个不需要绘图对象的函数,然后像往常一样在 ggplot 中添加它。 .

my_plot_function <- function() {
geom_hline(yintercept = 3, linetype = 'dashed')
}


mtcars %>%
ggplot() +
geom_point(aes(mpg, wt)) + my_plot_function()

关于r - 如何通过管道转发 ggplot 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40637088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com