2017-01-27 31 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參數。

相關問題