Построение изогнутой линии непосредственно через некоторые точки данных в R (ggplot)

#r #ggplot2 #curve #datapoint

#r #ggplot2 #кривая #точка данных

Вопрос:

Я борюсь с построением фигуры на профиле движения симулятора. То, что я пытаюсь показать, — это смещения симулятора с течением времени.

Некоторые примеры данных:

 Time = c(0, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44)
Displacement = c(0, 0, 7, 0, 0, 7, 0, 0, -7, 0, 0)
DD = as.data.frame(Time, Displacement)
 

Я хочу построить изогнутую / сглаженную линию, которая проходит непосредственно через эти точки данных.

введите описание изображения здесь, используя geom_line отклонение от курса создает остроконечную линию.

Самое близкое, что я получил для получения более гладкой линии, — это использование этого фрагмента кода:

 ggplot(DD, aes(x=Time, y=Displacement, c(0,7)))   
  geom_smooth(method = "loess", se = FALSE, span = 0.2, colour="black")
 

введите описание изображения здесь, однако кривые все еще довольно острые, и я надеюсь получить более красивый сюжет.

Надеюсь, кто-нибудь может помочь 🙂 Энн

Ответ №1:

Попробуйте использовать полиномиальную подгонку:

 library(ggplot2)
#Code
ggplot(DD, aes(x=Time, y=Displacement, c(0,7)))   
  geom_smooth(method = "lm",formula = y~poly(x,3), se = FALSE, span = 0.2, colour="black")
 

Вывод:

введите описание изображения здесь