再次亲爱的论坛,
我不是这些3D情节的最好的朋友,我挣扎于简单的格式化的东西。就像现在,我不能用变量来着色我的情节。
with(samples3d, {
s3d <- scatter3D(MDS2, MDS3, MDS1, pch = ifelse(meta$op.closed=="cl",22,21), type = "h",colvar = pcolor, lty.hplot=2, scale.y=0.75)
} )它给了我这个错误:
Error in clim[2] - clim[1] : non-numeric argument to binary operator从文件中我可以看出:
colvar:用于着色的变量.如果指定的话,它应该是(x,y,z)长度相等的向量。
所以在我天真的方法中,我检查了
colvec <- as.vector(samples3d$pcolor)
MDS1vec <- as.vector(samples3d$MDS1)
length(MDS1vec)
43
length(colvec)
43最好,玛蒂尔德
发布于 2018-02-13 14:26:13
我也觉得着色方案有点困难。但是colvar应该是一个数字向量,1,2,3,4到你拥有的组数。然后,你必须提供作为另一个向量-有数量的群的长度。然后,Scatter3D将在另一个向量中查找您的每个数字,该向量作为参数'col‘提供。例如:
colvar <- as.numeric(as.factor(pcolor))现在你所有的颜色都变成了数字。然后:
col <-levels(as.factor(pcolor))这是函数可以得到颜色的最优参数。
发布于 2017-10-24 07:37:17
在不知道向量中的数据类型的情况下,我会从错误消息中假设pcolor向量是非数字的。
对此错误消息的详细回答如下:Non-numeric Argument to Binary Operator Error in R
解决方案可能是用数字值用pcolor对组进行编码。至少在我遇到这个问题的时候,这对我起了作用。
https://stackoverflow.com/questions/41891071
复制相似问题