2013-11-09 78 views
0

我是一個完整的初學者,並有這個問題。我使用下面的代碼來生成一個顏色列表,然後創建一個巨大的散點圖矩陣。我想爲我的矩陣的第一列分配特定的顏色(分爲4類)。運行此代碼可以正常工作,但是如何驗證我打算爲每個分類變量指定的顏色是否正確?如何將特定顏色分配給R中的特定分類變量?

基本上我想要達到'控制'的綠色,'低'爲橙色,'中等'爲棕色,'高'爲黑色。

col.list<-c("green","orange","brown","black") 

palette(col.list) 

pairs(Indices[,4:17], col=Indices[,1]) 

謝謝你的幫助!

+0

您在'Indices'中的第一列應該是顏色名稱。有很多方法可以創建它。從「彩虹」開始。 –

回答

1

你這樣做的方式是正確的。如果你想檢查確實顏色對應於你的小組,你可以,例如這樣做的(這裏重複的例子):

set.seed(1) 
a <- data.frame(Group=factor(sample(c("control","low","medium","high"),20,TRUE), 
          levels= c("control","low","medium","high")), 
       x=rnorm(20),y=rnorm(20)) 
col.list <- c("green","orange","brown","black") 
palette(col.list) 
pairs(a[,2:3], col=a[,1]) 

做什麼col=a[,1]實際上是palette()[a[,1]](工作如果內容列的是一個因素或整數),所以讓我們來看看:

palette()[a[,1]] 
[1] "orange" "orange" "brown" "black" "green" "black" "black" "brown" "brown" "green" "green" "green" "brown" "orange" 
[15] "black" "orange" "brown" "black" "orange" "black" 

table(a[,1], palette()[a[,1]]) 
     black brown green orange 
    control  0  0  4  0 
    low   0  0  0  5 
    medium  0  5  0  0 
    high  6  0  0  0 

你真的擔心的唯一的事情是,Indices[,1]內容是一個因素,其水平以相同的順序排序爲對應的顏色列表。

+0

嗨Plannapus,感謝您的回覆。我理解邏輯,但是我無法用我的數據複製它。出於某種奇怪的原因,高位變成橙色。我錯過了明顯的東西嗎? – VGu

+0

你有沒有檢查你的關卡的順序是否匹配? (例如,當你輸入'Indices [1,1]'時,你應該看到你的第一個元素,而且是一個特定順序的層次列表。如果順序與你的顏色順序不匹配,可以改變你的順序顏色:)或者使用函數'repvel'重新排序。 – plannapus

+0

謝謝Plannapus。我意識到訂單並沒有彼此同步!乾杯。 – VGu

相關問題