Mit dessen Hilfe konnte ich ein 3D Scatter Plot zeichnen mit dem "iris" Datensatz, sowie ein Ellipsoid, welches das 95% Konfidenzintervall darstellt, dazu zeichen:
Code: Alles auswählen
library("rgl")
data(iris)
x <- sep.l <- iris$Sepal.Length
y <- pet.l <- iris$Petal.Length
z <- sep.w <- iris$Sepal.Width
plot3d(x, y, z, col="blue", box = FALSE,
type ="s", radius = 0.15)
ellips <- ellipse3d(cov(cbind(x,y,z)),
centre=c(mean(x), mean(y), mean(z)), level = 0.95)
plot3d(ellips, col = "blue", alpha = 0.2, add = TRUE, box = FALSE)
Ich weiß, dass die ersten 50 Punkte zu einer eigenen Art gehören und möchte für diese und die restlichen Punkte jeweils eine Ellipsoiden erstellen:
Code: Alles auswählen
plot3d(x, y, z, col=c(rep("gold2",50),rep("forestgreen",100)), box = FALSE,
type ="s", radius = 0.15)
ellips1 <- ellipse3d(cov(cbind(x[1:50],y[1:50],z[1:50])),
centre=c(mean(x[1:50]), mean(y[1:50]), mean(z[1:50])), level = 0.95)
ellips2 <- ellipse3d(cov(cbind(x[51:150],y[51:150],z[51:150])),
centre=c(mean(x[51:150]), mean(y[51:150]), mean(z[51:150])), level = 0.95)
plot3d(ellips1, col = "gold2", alpha = 0.2, add = TRUE, box = FALSE)
plot3d(ellips2, col = "forestgreen", alpha = 0.2, add = TRUE, box = FALSE)
In einem 2D Plot würde ich, um die flächenmäßige Verbreitung der Datenpunkte zu visualisieren ein Polygon um die äußeren Punkte zeichnen. In 3D wäre etwas adäquates meiner Meinung nach eine konvexe Hülle, also ein Polyhedron, das von dreieckicken Flächen begrenzt wird die von jeweils drei äußeren Punkten der Punktwolke begrenzt werden.
Ich denke die Funktion convhulln(), die den QuickHull-Algorithmus verwendet und im package "geometry" enthalten ist könnte hilfreich sein aber ich bin nach tagelangem Versuchen nicht im Stande die Funktion in einem rgl Plot zu verwenden. Kann mir bitte jemand helfen? Ist es auch möglich dies mit Hilfe des "plot3D" package darzustellen, da ich hier http://www.sthda.com/english/wiki/impre ... ualization ein hilfreiches Tutorial gefunden haben, das ich verwenden könnte um ein schönes 3D Plot mit meinen eigenen Daten zu erstellen.
Ich bin Biologe der dies für wissenschaftliche Zwecke verwendet und kein Mathematiker oder R Profi, also wäre es schön wenn ihr eure Lösungsschritte kurz erklärt. Vielen Dank.