gpt4 book ai didi

r - 给定十六进制颜色代码向量,将特定颜色分配给 geom_tile 单元格

转载 作者:行者123 更新时间:2023-12-04 17:53:58 28 4
gpt4 key购买 nike

我需要帮助为 86x86 矩阵分配正确的十六进制颜色代码到 ggplot + geom_tile()。它是一个相关矩阵,我想根据它的值和由 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

我有一个单独的 (7396x1) 向量,名为 flavors.color,其中包含与 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

最佳答案

您可以通过创建 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))

关于r - 给定十六进制颜色代码向量,将特定颜色分配给 geom_tile 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42059982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com