2013-02-22 318 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