1
次のデータセットがあり、このデータセット(60 3Dポイント)に基づいてサーフェスをプロットする必要があります。ここで、X、Yは水平面座標、Zは垂直/高さ座標である。x、y、z座標を与えられたRの3Dサーフェスプロット
p = read.csv("points.csv")
PTS X Y Z
1 101 481897.9 5456408 94.18695
2 102 481888.8 5456417 94.30702
3 103 481877.0 5456410 94.29034
4 104 481879.9 5456425 94.25546
5 105 481872.7 5456424 94.09370
いくつかのポストを見て、いくつかのライブラリで関数を使用しようとしても、私はまだ表面を適切にプロットする方法を見つけることができません。私は以下を試しました:
library(plotly)
plot_ly(y= Y, x = X, z = Z, data=p, type = "surface") #returns empty graphic frame
PX = data.matrix(p$X)
PY = data.matrix(p$Y)
PZ = data.matrix(p$Z)
library(plot3D)
surf3D(PX, PY, PZ)
#returns: Error in if (is.na(var)) ispresent <- FALSE else if (length(var) == 1) if (is.logical(var)) if (!var) ispresent <- FALSE :
argument is of length zero
library(lattice)
wireframe(p$Z ~ p$X*p$Y, data = p) #returns just a cube
library(rgl)
surface3d(p$X,p$Y,p$Z)
#returns: Error in rgl.surface(x = c(481897.916, 481888.8482, 481876.9524, 481879.9393, : y' length != 'x' rows * 'z' cols;
#although there are 60 data points in the form (X,Y,Z) in the data set, with no points missing any coordinate
ここでは何かひどく間違ったことをしているに違いありません。間違いが何であるか指摘してもらえますか?
。また、dputコマンドでデータを投稿することができれば、他の人が手助けしやすくなります。 – Dave2e