我正在尝试向现有的ggplot添加多个图形元素。新元素将放置在指定的x值周围。简化来说,我有一个现有的绘图p,在原点上有一个点:
library(ggplot2)
p <- ggplot(data = data.frame(x = 0, y = 0), aes(x = x, y = y)) +
geom_point()
现在我想创建一个函数,可以在定义的x位置左右添加一个点。我尝试过以下代码:
add_points <- function(x) {
geom_point(aes(x = x - 1, y = 0), color = "red") +
geom_point(aes(x = x + 1, y = 0), color = "red")
}
但是当我尝试使用以下方法添加它们时:
p + add_points(x = 0)
我得到了以下错误信息:
错误:无法将ggproto对象相加。您是否忘记将此对象添加到ggplot对象中?
在ggplot中,如何基于一个参数添加多个图层?
注:使用该函数只添加一个图层是可以正常工作的,因此首先创建一个包含x值的tibble,并将其提供给geom_point也可以正常工作。但实际上,我需要向绘图中添加几个不同的geoms,所以我认为需要在函数中添加几个图层。