Oltre alla risposta precedente, una volta che si costruisce un grafico a dispersione 3-D, è possibile aggiungere un aereo ad essa con la creazione di un modello e analizzandolo utilizzando una funzione annidata nel contenitore scatterplot3d()
. Dovrebbe essere qualcosa di simile:
plot3d <- scatterplot3d(x, y, z, ...)
model <- lm(y ~ sqrt(c + x^2) + z)
plot3d$plane3d(model)
E 'una sintassi molto strano avere una funzione all'interno di un contenitore simile, ma funziona, dandovi qualcosa di simile (il piano tratteggiata-line è visibile vicino al centro di il cubo):
Se si vuole creare uno o più piani manualmente, vorrei utilizzare il metodo di Uwe che ho ri-postato here:
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")
Questo produce gli aerei attraverso la specificazione manuale:
correlati, ma non un duplicato: http://stackoverflow.com/q/6774777/636656 –