我尝试创建一个组合了几个geom_
的实用函数,如下面的例子所示(不起作用):
my_geom_y <- function(yy, colour){
geom_line(aes(y=yy), col=colour) + geom_point(aes(y=yy), col=colour)
}
这样我就可以这样做了
myX <- 0:90
ggplot(mapping = aes(x=myX)) + my_geom_y(dlnorm(myX), "red") + my_geom_y(dexp(myX), "blue")
这可能吗?
我尝试使用get()
,eval()
,substitute()
,as.name()
,但没有效果。查看相关帖子:passing parameters to ggplot,Use of ggplot() within another function in R没有帮助。
3条答案
按热度按时间bxgwgixi1#
我喜欢MSM的方法,但是如果你想把
my_geom_y
添加到你已经做好的ggplot中,这是一个可能适合你的选择:gjmwrych2#
我没有足够的声誉来评论,所以这里有一个建议:
这将创建一个plot,要创建多个plot,你需要将你的输入作为一个列表传递给函数,并在函数内部为每个geom循环(因为我们不能添加两个或更多的ggplot对象)-如果这样做有意义的话。
eqqqjvef3#
基于@luke-c的思想,这使得函数独立,剪切和粘贴准备就绪。我们现在也可以添加标签到每个曲线。
当您需要直观地比较多个分布时,此函数会变得非常方便。