在给定十六进制颜色代码

时间:2017-02-06 03:31:46

标签: r ggplot2 k-means

我需要帮助为gxplot + geom_tile()为86x86矩阵分配正确的十六进制颜色代码。它是一个相关矩阵,我想根据它的值和由kmeans聚类生成的类来为它着色。有六种不同的簇/颜色。这是伪代码:

value[i,j] < 0.7, color '#FBB4AE'
value[i] == value[j] then color it according to its cluster value from kmeans 
else: color '#FED9A6'

以下是数据片段(11x6):

1   1.000000000  0.39444675  0.71206533  0.45434411  0.39223227  0.450000000
2   0.394446746  1.00000000  0.67660082  0.52710164  0.48768778  0.457329560
3   0.712065332  0.67660082  1.00000000  0.66864785  0.52839595  0.641500299
4   0.454344111  0.52710164  0.66864785  1.00000000  0.52414242  0.356348323
5   0.392232270  0.48768778  0.52839595  0.52414242  1.00000000 -0.147087101
6   0.450000000  0.45732956  0.64150030  0.35634832 -0.14708710  1.000000000
7   0.511111111  0.35252487  0.64150030  0.84632727  0.27238352  0.490740741
8   0.064888568  0.26429707 -0.01560976  0.08671100 -0.07953560  0.243332132
9   0.307350428  0.40105559  0.52720311  0.80357143  0.38000325  0.356348323
10  0.509636861  0.25374774  0.44294040  0.19771865 -0.04836194  0.630196118
11  0.394557570  0.21145645  0.07909650  0.52724973  0.22568906 -0.027399831

我有一个名为flavors.color的单独(7396x1)向量,其中包含与86x86矩阵的每个元素对应的十六进制颜色代码。这些颜色代码基于我上面陈述的条件。顶部是每个元素的出现表。 #CCCCCC最常见。

color

融化后:

p<-ggplot(data=corr.melt,aes(Var1,Var2)) + geom_tile(aes(fill=flavors.color),color="white") 
p+ scale_fill_manual(values = unique(flavors.color))

#CCCCCC是'灰色'但是在我的情节中它将它染成紫色。我从brewer.pal(6,"Set2")定义了我的颜色,并手动添加了另外两种颜色,#CCCCCC#FFFFCC。在Set2紫色位于第四位。所以,'灰色','白色'和'紫色'混在一起,我不知道为什么。这是结果的照片。

plot

1 个答案:

答案 0 :(得分:1)

您可以通过创建86x86网格来完成此操作。

 x <- seq(1,86)
 y <- seq(1,86)
 yxs <- expand.grid(x,y)
 yxs$flavors.color <- flavors.color
 ggplot(yxs,aes(x=Var1,y=Var2))+geom_tile(aes(fill=flavors.color))
相关问题