Ich habe den folgenden Datensatz und muss eine Oberfläche basierend auf diesem Datensatz (von 60 3D-Punkten) zeichnen. Hier sind X, Y die horizontalen Koordinaten der Ebene und Z ist die vertikale/Höhen-Koordinate.3D-Oberflächendiagramm in R, gegeben x, y, z-Koordinaten
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
Nach mehreren Stellen und versuchen, suche durch Bibliotheken in verschiedenen Funktionen zu nutzen, kann ich einen Weg finden, um noch nicht richtig um die Oberfläche zu zeichnen. Ich habe folgendes versucht:
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
Ich muss etwas schrecklich falsch hier getan haben. Würde es jemanden etwas ausmachen, darauf hinzuweisen, was der Fehler ist?
versuchen, eine 3D-Punktwolke mit rgl :: plot3d (p $ X, p $ Y, p $ Z) aufgetragen ist. Wenn Sie Ihre Daten mit dem Befehl dput posten können, erleichtern Sie anderen die Arbeit. – Dave2e