2013-02-22 317 views
0

假设我已经X,Y,Z,其中x任何y的数据帧被所述坐标和z为高度。我如何在x和y平面上创建一个z的毯子。 我试着用黄土函数来创建一个覆盖R:三维曲面图

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) 

但预计z值不符合原来的高度一致性。

scatterplot3d功能给了我只有零散的点,我如何才能有丘陵和山谷的面?

+1

[R的可能重复:绘制从X 3D表面,Y,Z](http://stackoverflow.com/questions/3979240/r-plotting-a-3d-surface-from-xyz) – juba 2013-02-22 08:22:33

+0

这会给我尖峰,而不是平滑的曲线代表的丘陵和山谷 – Sri 2013-02-22 08:28:09

+0

@Sri它听起来像是你需要调整'loess'近似的参数,以获得更流畅的预测。你可以从'span'开始。 – James 2013-02-22 09:20:08

回答

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