2016-09-02 66 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

离群现在是很好的和明显的。