Neben der vorherigen Antwort, sobald Sie ein 3-D-Scatterplot konstruieren Sie ein Flugzeug, um es durch die Schaffung eines Modells hinzufügen und analysieren Sie es mit einer Funktion verschachtelt in Ihrem scatterplot3d()
Container. Es sollte wie folgt aussehen:
plot3d <- scatterplot3d(x, y, z, ...)
model <- lm(y ~ sqrt(c + x^2) + z)
plot3d$plane3d(model)
Es ist eine sehr seltsame Syntax, um eine Funktion in einem Container wie das haben, aber es funktioniert, können Sie so etwas wie dieses geben (die punktierten Ebene sichtbar in der Nähe des Zentrums von der Würfel):
Wenn Sie eine oder mehrere Ebenen möchten manuell erstellen, würde ich Uwes Methode verwenden, die ich here erneut geschrieben:
spd <- scatterplot3d(1:10, 1:10, 1:10)
# xy
spd$plane3d(0.3549896,0,0,lty="dotted")
# yz
x0 <- 5
xyz1 <- spd$xyz.convert(rep(x0, 6), rep(0, 6), seq(0, 10, by=2))
xyz2 <- spd$xyz.convert(rep(x0, 6), rep(10, 6), seq(0, 10, by=2))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
xyz1 <- spd$xyz.convert(rep(x0, 6), seq(0, 10, by=2), rep(0, 6))
xyz2 <- spd$xyz.convert(rep(x0, 6), seq(0, 10, by=2), rep(10, 6))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
# zx
y0 <- 6
xyz1 <- spd$xyz.convert(rep(0, 6), rep(y0, 6), seq(0, 10, by=2))
xyz2 <- spd$xyz.convert(rep(10, 6), rep(y0, 6), seq(0, 10, by=2))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
xyz1 <- spd$xyz.convert(seq(0, 10, by=2), rep(y0, 6), rep(0, 6))
xyz2 <- spd$xyz.convert(seq(0, 10, by=2), rep(y0, 6), rep(10, 6))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
Dies erzeugt Ebene durch manuelle Vorgabe:
Verwandte, aber kein Duplikat: http://stackoverflow.com/q/6774777/636656 –