这是一个相对权重矩阵:
weightmat <- matrix(c(0,3,6,4,0,5,7,2,0), nrow = 3, ncol = 3)
我可以使用多种专用方法生成热图图形,例如来自plotrix的这种方法:
color2D.matplot(weightmat, extremes = c("white", "red"))
一切都很好,但我现在要做的是返回热图中使用的颜色值矩阵,以便我可以使用它们来表示其他图形输出中的权重,例如网络。 基于上面的例子,我所依赖的输出如下所示:
weightcol <- matrix(c("#FFFFFF","#FF9292","#FF2424","#FF6D6D","#FFFFFF","#FF4949","#FF0000", "#FFB6B6", "#FFFFFF"), nrow = 3, ncol = 3)
到目前为止,我一直在通过生成具有各种专用函数(ggplot,plotrix等)的热图并尝试从输出中剖析基础数据,或者重现它们的计算来解决这个问题。但是,我发现这些数据难以访问,并想知道是否有人可以为我提供解决方案来弥补这一差距。 提前谢谢。
答案 0 :(得分:1)
我不确定你是否可以从color2D.matplot对象中提取值,但是从查看documentation开始,似乎使用了color.scale函数。您可以通过以下方式找到您的值:
color.scale(weightmat,extremes=c("white","red"))
结果:
[,1] [,2] [,3]
[1,] "#FFFFFFFF" "#FF6D6DFF" "#FF0000FF"
[2,] "#FF9292FF" "#FFFFFFFF" "#FFB6B6FF"
[3,] "#FF2424FF" "#FF4949FF" "#FFFFFFFF"
最后的额外FF
s用于可以使用alpha参数设置的不透明度。
你可以剥掉那些:
substr(color.scale(weightmat,extremes=c("white","red")),1,7)
结果:
[,1] [,2] [,3]
[1,] "#FFFFFF" "#FF6D6D" "#FF0000"
[2,] "#FF9292" "#FFFFFF" "#FFB6B6"
[3,] "#FF2424" "#FF4949" "#FFFFFF"
希望这有帮助!