我正在使用来自plot3d()的rgl制作三维散点图,使用三列,在一个数据框架中的样本。此外,我正在使用来自我的数据框架的第四列colorby (其中每个示例都以值(例如,10、11、12作为因子/级别)来对图中的点进行着色。
当使用plot()制作2D绘图时,我首先在plot()中设置palette(rainbow(3)),然后在plot()中设置col = colorby,然后再设置legend()。情节、色彩和传说都很好。
但是,当我重复plot3d()的最后一部分时,着色会混在一起,而不是将相同的颜色分配到与plot()相同的级别。此外,如果我使用legend3d("topright", legend = levels(colorby), col = rainbow(3))创建一个图例,它看起来与2D图例相同,但在3D图中着色显然是错误的。
我哪里出问题了?
发布于 2017-01-02 19:06:23
在我看来,这是正确的:
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)https://stackoverflow.com/questions/41428840
复制相似问题