2016-09-02 67 views
1

想要用不同顏色標記R矩陣中的離羣點。 說我有數據以不同顏色顯示R熱圖離羣點

1 2 4 2 5 
5 4 3 2 3 
1 500 5 4 2 

現在我想,以紀念500用不同的顏色,並與熱圖的默認顏色矩陣的剩餘。

有人能指導我完成整個過程嗎?

+2

這個問題相當廣泛。沒有代碼也沒有數據。例如,請添加這個,以便我們看到您使用的圖形系統。 – lmo

+0

df是我的數據集在這裏..所以當我使用下面的函數它被繪製..但1 2 3等之間的顏色梯度差異是無法區分的。所以,我想讓這個500來一些不同的顏色..可能是綠色的,其他顏色的矩陣其他顏色。 熱圖(as.matrix(sapply(DF,as.numeric)) ,標度= 「塔」 ,COL = heat.colors(256) ,主要= 「等等等等」 ,Rowv = NA ,COLV = NA ) –

+0

請修改您的問題,而不是在評論中添加代碼。 – lmo

回答

1

如果你想清楚地看到500,你應該指定沒有縮放。例如,

m <- matrix(c(1, 5, 1, 2, 4, 500, 4, 3, 5, 2, 2, 4, 5, 3, 2), 
    ncol=5) 

heatmap((m<500)+0, scale="none", Rowv=NA, Colv=NA) 
+0

謝謝你的幫助。但我想要的是500應該是在不同的梯度(可能是綠色),其餘的數字(可能是橙色)。 另外我想標籤來。你能幫我 –

+0

我編輯我的答案給兩種顏色。 –

1

這是一個體面的解決方法來實現這一點。使用gplots中的heatmap.2(),可以爲熱圖中的NA值指定任何顏色。所以,如果你用一個簡單的函數來替換源矩陣中的NAs的異常值,那麼你可以用你喜歡的任何顏色來表示它們。

首先,選擇你的離羣值條件。舉例來說,讓我們說任何大於10的值都是異常值。

> m 
#  [,1] [,2] [,3] [,4] [,5] 
# [1,] 1 2 4 2 5 
# [2,] 5 4 3 2 3 
# [3,] 1 500 5 4 2 

m[m > 10] <- NA 

現在繪製熱圖。

library(plots) 
heatmap.2(m, trace = "none", na.color = "Green") 

enter image description here

離羣現在是很好的和明顯的。