我有两个几何,例如geom_smooth
和geom_point
。我想创建一个新的单独的几何geom_smoothpoint
,它将绘制上述两个几何。
我想要这样:
ggplot(iris, aes(x=Sepal.Length, y=Petal.Width)) +
geom_smoothpoint()
给出与以下相同的结果:
ggplot(iris, aes(x=Sepal.Length, y=Petal.Width)) +
geom_point() +
geom_smooth(method="lm")
我尝试将这两个结合:
geom_smoothpoint <- function(){
geom_point() +
geom_smooth(method="lm")
}
但这并不能真正起作用。似乎必须组合ggproto
对象,但是我不确定如何组合。有没有简单的方法将两个几何组合成一个?谢谢!
答案 0 :(得分:3)
您当然可以编写自己的geom
,但这绝对是过头了。在函数中返回一个列表很容易,您可以方便地将其添加到绘图中:
geom_smoothpoint <- function() {
list(geom_point(), geom_smooth(method = "lm"))
}
ggplot(iris, aes(x=Sepal.Length, y=Petal.Width)) +
geom_smoothpoint()