Here is a detour along the same lines proposed by Etienne. The basic idea is to set up a graph, then use a separate call points3d()to plot points in each dimension class.
size <- as.numeric(cut(iris$Petal.Width, 7))
irisList <- split(iris, size)
with(iris, plot3d(Sepal.Length, Sepal.Width, Petal.Length, col=Species, size=0))
for(i in seq_along(irisList)) {
with(irisList[[i]], points3d(Sepal.Length, Sepal.Width,
Petal.Length, col=Species, size=i))
}
(FWIW, , plot3d(). , plot3d() material3d() , , material3d() only .)
material3d(size = 1:7)