R plot3d着色

时间:2017-01-02 14:42:19

标签: r rgl

我正在使用plot3d()中的rgl在数据框中使用三列样本制作3D散点图。此外,我正在使用我的数据框中的第四列colorby(其中每个样本取值,例如10,11,12作为因子/级别)来为图中的点着色。

使用plot()制作2D绘图时,我首先在palette(rainbow(3))中设置col = colorby然后设置plot(),然后设置legend()。情节,颜色和传奇都很好。

但是,当我重复plot3d()的最后一部分时,着色会混淆,并且不会将相同的颜色分配到与plot()中相同的颜色。此外,如果我使用legend3d("topright", legend = levels(colorby), col = rainbow(3))创建图例,它看起来与2D图例相同,但3D图中的着色显然是错误的。

我哪里错了?

1 个答案:

答案 0 :(得分:2)

这对我来说是正确的:

df <- data.frame(x=1:9, y=9:1, z=101:109, colorby=gl(3,3))
palette(rainbow(3))
plot(x~y, df, col = df$colorby)
library(rgl)
with(df, plot3d(x,y,z, col = colorby))
legend3d("topright", legend = levels(df$colorby), col = levels(df$colorby), pch=19)