2017-01-27 36 views
1

你好再次亲爱的论坛,colvar在scatter3D返回错误“CLIM [2] - CLIM [1]:非数值参数二元运算符”

我不是最好的朋友,这些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 :The variable used for coloring. ... if specified, it should be a vector of equal length as (x, y, z)."

所以在我幼稚的做法我检查

colvec <- as.vector(samples3d$pcolor) 
MDS1vec <- as.vector(samples3d$MDS1) 
length(MDS1vec) 
43 
length(colvec) 
43 

- 他们是相同的长度,所以wh在这里错了吗?

最佳, 玛蒂尔德

回答

0

不知道是你的载体什么样的数据,我就从你的令pColor矢量非数值错误信息承担。

详细回答了这个错误信息在这里给出: Non-numeric Argument to Binary Operator Error in R

一个解决办法是与数值令pColor编写您的组。至少这对我有用,当我遇到这个问题时。

0

我也发现着色方案有点困难。但colvar应该是一个数字向量,1,2,3,4直到你拥有的组数。然后你必须提供col作为另一个矢量 - 长度为组的数量为。然后,Scatter3D将查找其他向量中的每个数字,并将其作为参数'col'提供。例如:

colvar <- as.numeric(as.factor(pcolor)) 

现在你所有的颜色都被制成数字。然后:

col <-levels(as.factor(pcolor)) 

这是函数可以获取颜色的col参数。

相关问题