R-提取(p)用于多边形填充的热图颜色

R-提取(p)用于多边形填充的热图颜色,r,polygon,heatmap,fill,pheatmap,R,Polygon,Heatmap,Fill,Pheatmap,我在R中创建了一个大小为n*k的热图,是否可以提取用于第I个元素的单个颜色 例如,n=3(列)和k=50(行),n表示任意级别的严重性,k表示英国的一个地区 我有这些地区的多边形,我想根据严重程度创建3个单独的贴图,使用与整体热图相同的颜色作为多边形的填充,以保持一致性 谢谢, Alan为了理解这是如何工作的,我必须研究pheatmap的代码。 让我们首先生成一个矩阵: A <- matrix(1:10, 2, 5) 最后,我们可以用A2中定义的颜色首先用pheatmap表示A,也可以用

我在R中创建了一个大小为n*k的热图,是否可以提取用于第I个元素的单个颜色

例如,n=3(列)和k=50(行),n表示任意级别的严重性,k表示英国的一个地区

我有这些地区的多边形,我想根据严重程度创建3个单独的贴图,使用与整体热图相同的颜色作为多边形的填充,以保持一致性

谢谢,
Alan

为了理解这是如何工作的,我必须研究
pheatmap
的代码。 让我们首先生成一个矩阵:

A <- matrix(1:10, 2, 5)
最后,我们可以用
A2
中定义的颜色首先用
pheatmap
表示
A
,也可以用
image
表示:

pheatmap(t(A[,5:1]),cluster_rows = F, cluster_cols = F)


Ref:

您可以为热图指定自定义颜色,然后,您可以使用热图为其他任何东西着色。我想他对将颜色的精确阴影映射到多边形地图很感兴趣。是这样吗?如果您更改了
A,您可以尝试
image(矩阵(1:10,2,5),col=A2)
?如果
A
包含随机值,我认为
image
会被混淆。我还尝试用随机值填充
A
,我得到了
A2
pheatmap
赋予的正确颜色。我查过了。谢谢@Vincent,效果很好。一旦我有了A2数据集,我就可以很容易地使用A2内容的第I个元素作为多边形的填充在各个区域中循环。干杯。:)
bks <- pheatmap:::generate_breaks(A, length(pal), center = F)
A2 <- pheatmap:::scale_colours(A, col=pal, breaks=bks)
A2
#          [,1]      [,2]      [,3]      [,4]      [,5]     
# [1,] "#4575B4" "#ABD0E4" "#F4FBD2" "#FEDF8F" "#EF6D48"
# [2,] "#77A6CE" "#E0F3F7" "#FEF4AF" "#FCA86B" "#D73027"
pheatmap(t(A[,5:1]),cluster_rows = F, cluster_cols = F)
image(A, col=A2)