Я пытаюсь добавить несколько графических элементов в существующий 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 может добавлять несколько слоев на основе функции, которая принимает аргумент?
PS: добавление только одного слоя с помощью этой функции работает , поэтому сначала создайте тиббл со значениями x и подайте его в точку geom_point. В действительности, однако, я добавляю несколько разных геомов на график, поэтому я думаю, что мне нужно добавить несколько слоев вместе в функцию.