I'm not sure the colkey
option applies to the plot3d
function. You can use legend3d
instead to add a legend the way you would in normal 2d plots:
library(rgl)
#dummy data
set.seed(1)
x <- cumsum(rnorm(100))
y <- cumsum(rnorm(100))
z <- cumsum(rnorm(100))
cuts = cut(x = 1:length(x), breaks = 3)
# open 3d window
open3d()
# resize window
par3d(windowRect = c(100, 100, 612, 612))
# plot points
plot3d(x, y, z,
col=rainbow(3)[cuts],
size = 2, type='s')
# add legend
legend3d("topright", legend = paste('Type', c('A', 'B', 'C')), pch = 16, col = rainbow(3), cex=1, inset=c(0.02))
# capture snapshot
snapshot3d(filename = '3dplot.png', fmt = 'png')
Update: colkey
is an argument to scatter3D
in the plot3D
package (not the same as the plot3d
function in the rgl
package). You can use this as well:
library(plot3D)
scatter3D(x,y,z, col = rainbow(3)[cuts], colvar = NA, colkey = F, pch = 16)
legend("topright", paste('Type', c("A", "B", "C")), pch = 16, col = rainbow(3), cex=1, inset=c(0.02,0.2))
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…