Воспроизводимый пример для генерации данных:
n <- 9
x <- 1:n
y <- rnorm(n)
data <- data.frame(x, y)
Я знаю, как построить данные со сплайном без ggplot2.
plot(x, y, main = paste("spline[fun](.) "))
lines(spline(x, y))
изображение графика доступно здесь:
Однако, Я хочу построить сплайн с помощью ggplot2 .Вот пример кода:
ggplot(aes(x = x, y = y)) + geom_point() + geom_line(spline(data))
Ошибка, которую я получаю: Ошибка: data
должен быть фреймом данных или другим объектом, который можно изменить с помощью fortify()
, а не объектом S3 с неравным классом.случайно передать aes()
в аргумент data
?
Та же ошибка выдается, если я использую
ggplot(aes(data, x = x, y = y)) + geom_point() + geom_line(spline(data))
или
ggplot(aes(x = x, y = y)) + geom_point() + geom_line(spline(x, y))
или
ggplot(aes(x = data$x, y = data$y)) + geom_point() + geom_line(spline(data$x,data$y))
Следующая ошибка дает другую ошибку.Он был исследован в здесь , но я хочу построить сплайн и не уверен, как применить решение к моей ситуации.
library(dplyr)
data %>% ggplot(aes(x = x, y = y)) + geom_point() + geom_line(spline(x, y))
Ошибка: mapping
должен быть созданaes()