2013-02-22 9 views
0

Предполагая, что у меня есть кадр данных x, y, z, где x любые y - координаты, а z - высота. Как создать одеяло z над плоскостями x и y. Я попытался с помощью функции лёссовой создать одеялоr: 3D-график поверхности

data.loess = loess(z~x*y,data =data.df) 
data.fit = expand.grid(list(x = seq(min(x),max(x),0.1), y = seq(min(y),max(y),0.1))) 
z = predict(data.loess, newdata =data.fit) 

Но прогнозируемое значение г не в согласованности с первоначальной высотой.

Функции, подобные scatterplot3d, дают мне только разбросанные точки, как мне получить поверхность с холмами и долиной?

+1

возможно дубликат [R: Заговор 3D-поверхность от й , y, z] (http://stackoverflow.com/questions/3979240/r-plotting-a-3d-surface-from-xyz) – juba

+0

Это даст мне шипы, а не гладкие кривые холмы и долины кривых – Sri

+0

@Sri It похоже, что вам нужно настроить параметры приближения «лесс», чтобы получить более плавные предсказания. Вы можете начать с 'span'. – James

ответ

1

Я понятия не имею, что фраза «не в согласованности с первоначальной высотой» средствами, но почему бы не посмотреть на:

persp(z) 

x = seq(1,10,0.1); y = seq(1,10,0.1) 
z= outer(x,y,"*") 
data =data.frame(x=rep(x, times=91), y=rep(y, each=91), z=c(z)) 
data.loess = loess(z~x*y,data =data) 
data.fit = expand.grid(list(x = seq(min(x),max(x),0.1), y = seq(min(y),max(y),0.1))) 
z = predict(data.loess, newdata =data.fit) 
persp(z) 

enter image description here