基于R中的列值自动将颜色指定给3D散点图点

基于R中的列值自动将颜色指定给3D散点图点,r,plot,colors,3d,R,Plot,Colors,3d,我有一个名为db\u cluster的nx4矩阵。我想在矩阵中绘制三维点,并根据矩阵第4列(我们称之为“簇”)中的值为点指定颜色 我在网上找到的大多数信息都会手动为每个列值指定一种颜色(即,如果一列中有3个唯一的数据,它们会为每个值指定红色、蓝色和绿色) 我的“簇”列中有18个唯一的值,因此手动将每个值指定给颜色是不可行的。是否有方法自动将颜色指定给值并打印 顺便说一句,我用的是plot3d plot3d(db\u集群)假设您的数据如下所示: db_集群[,1][,2][,3][,4] #>

我有一个名为
db\u cluster
的nx4矩阵。我想在矩阵中绘制三维点,并根据矩阵第4列(我们称之为“簇”)中的值为点指定颜色

我在网上找到的大多数信息都会手动为每个列值指定一种颜色(即,如果一列中有3个唯一的数据,它们会为每个值指定红色、蓝色和绿色)

我的“簇”列中有18个唯一的值,因此手动将每个值指定给颜色是不可行的。是否有方法自动将颜色指定给值并打印

顺便说一句,我用的是plot3d


plot3d(db\u集群)

假设您的数据如下所示:

db_集群[,1][,2][,3][,4]
#>  [1,]   10    5    6    9
#>  [2,]    4    5    4    5
#>  [3,]    5    2    9    5
#>  [4,]    9    1    5    3
#>  [5,]    8   10    3    9
#>  [6,]   10    2    2    2
#>  [7,]   10    3    3    9
#>  [8,]    8    5    2    6
#>  [9,]    9    5   10    4
#> [10,]    5    4    3    7
然后你可以做:

rgl::plot3d(x=db_cluster[,1],
y=db_簇[,2],
z=db_簇[,3],
col=db_簇[4],大小=10)

Hi,我的“群集”列数据包含0-18之间的数字。我收到一条错误消息
col2rgb(颜色)中的错误:数字颜色值必须为正
知道如何解决这个问题吗?@zlee11你可以做
col=1+db_cluster[,4]这样就没有零值了,最后一个问题——我如何将这个图例添加到这个图中?@ Zee11,如果我的答案有帮助,请考虑把它标记为接受-谢谢。我以前见过它,但是看起来好像是根据唯一值的数目手工输入的。有没有办法自动分配LE?性别?