2016-10-10 5 views
0

Я ищу, чтобы добавить кривую к моему заговору, чтобы показать экспоненциальное снижение с течением времени. Ive построил два небольших набора данных с основной функцией plot(), и для ясности я хотел добавить сглаженную линию. Точки данных для двух наборов данныхДобавить экспоненциальную кривую в график

1.00000 0.37360 0.27688 0.22992 0.17512 0.13768 0.08048 
1.00000000 0.44283122 0.30871143 0.23647913 0.22586207 0.09800363 0.06206897 

со значениями х, показывающих распад с течением времени (0,1,2,3,4,5,6)

plot

+1

Вы хотите, чтобы соответствовать конкретной модели с экспоненциальным затуханием или просто подходят непараметрическую сглаженной линии? Для первого зарегистрируйте свои данные и используйте 'lm', для последнего попробуйте' less'. – Gregor

+0

Конкретная модель для экспоненциального распада была бы идеальной – Will

+0

см. 'Nls' в пакете' nlme', если вы хотите поместить модель –

ответ

0

I как использовать ggplot2, поскольку он делает так, чтобы добавить линии из моделей.

Без многих идти на следующем может помочь вам ....

#prepare the data 
y <- c(1.00000, 0.37360, 0.27688, 0.22992, 0.17512, 0.13768, 0.08048, 
    1.00000000, 0.44283122, 0.30871143, 0.23647913, 0.22586207, 0.09800363, 0.06206897) 
x <- c(0,1,2,3,4,5,6,0,1,2,3,4,5,6) 
z <- c(1,1,1,1,1,1,1,0,0,0,0,0,0,0) 


dat <- as.data.frame(cbind(x,y,z)) 

#load the library 
library(ggplot2) 

#plot the data 
ggplot(data=dat,aes(x=x,y=y))+ 

#add Points with different shapes depending on factor z 
geom_point(aes(shape=factor(z)))+ 

#Add line using non-linear regreassion 
stat_smooth(method="nls",formula = y~a*exp(-x*b),method.args=list(start=c(a=2,b=2)),se=F,color="red")+ 

#add line using linear regression 
stat_smooth(method="lm",formula = y~exp(-x),se=F,color="blue") 
+0

Это сработало отлично! Большое спасибо Микки. Я определенно начну использовать ggplot больше сейчас! – Will

+0

Я рад, что это помогло! – Micky

 Смежные вопросы

  • Нет связанных вопросов^_^