построение гладкой линии для данных очень малой величины - PullRequest
0 голосов
/ 07 марта 2012

Команда, которую вы предложили, в некоторой степени служит цели. Но я все еще ищу команду / функцию, чтобы получить более плавные кривые.Я даю воспроизводимый код ниже, который рисует довольно острые края или более грубо: линия, соединяющая точки, является слишком острой, особенно в тот момент, когда она начинается из одной точки в другую.Извините за нетехнический язык, так как я до сих пор не знаком с этой областью.Спасибо за помощь, предоставленную по этому вопросу.Пожалуйста, предложите изменения в коде ниже, чтобы получить более плавные кривые.

xdata1<-c(6:11)
ydata1<-c(-0.75132894, -1.71909555,  -0.62653171, 0.49512191, 0.29201836, 0.31094460)
plot(NULL,NULL,xlim=xlims,ylim=ylims,axes=FALSE, ann=FALSE) 
axis(1,cex.axis=0.7,mgp=c(3, .3, 0))
axis(2, las=1,cex.axis=0.7,at=c(-2,-1,0,1,2), mgp=c(3, .7, 0))
mtext(side = 1, text =expression('Year'), line = 1,font=15)
mtext(side = 2, text = expression('Variable'), line = 1.5,font=15)
lines(smooth.spline(xdata1,ydata1, df=5), col='red',type="l", pch=22, lty=1, lwd=1)
####### Обновленный запрос завершается здесь

Я должен построить данные очень малой величины для временных шагов 1. Пожалуйста, см. Пример данных ниже:

xdata<-c(1:48)
ydata<- c(0.325563413,0.401913414,0.221939845,0.19881055,
         -0.05918293,-1.108143815,-0.220563332,-0.148715078,
         -0.14998762,0.131610695,0.249923598,0.246891873,
          0.656812019,0.524436114,0.23875397,0.200695075,
         -0.015974087,-0.611863249,0.121994831,-0.143103421,
         -0.142109609,0.101451935,0.160242421,0.232404601,
          0.348305745,0.231109382,0.334988321,0.263046902,-0.058154333,
       -1.032276818,-0.352068888,-0.13082767,-0.134611511,0.116967421,
          0.268706409,0.232776855,0.39515544,0.540317537,0.424281195,
          0.3061158,-0.210735495,0.023705618,0.473338271,0.270527033,
         -0.165394174,0.268773501,0.202437269,0.305577906)

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

Заранее спасибо,

Ответы [ 2 ]

5 голосов
/ 07 марта 2012

Не уверен, что означает «без выделения отдельных точек», но вот один из способов получить плавную линию:

plot(xdata,ydata)
lines(smooth.spline(xdata,ydata, df=10), col = "red")

См. Также: ?loess.smooth, apropos("smooth"). Поиск "[r] smooth plot" находит Как подогнать плавную кривую к моим данным в R? ...

enter image description here

0 голосов
/ 07 марта 2012

Указание типа "l" на графике просто даст вам линии.

plot(xdata, ydata, type = "l")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...