2017-07-27 157 views
2

这里是相对权重的AA矩阵:提取颜色值从热图的矩阵或底层数据

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等)热图到目前为止解决这一并试图解剖底层来自输出的数据,或者重现他们的计算。但是,我发现这些数据很难访问,并想知道是否有人可以为我提供解决方案来弥补这一差距。 预先感谢您。

回答

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的结尾是可与阿尔法参数设置不透明度。

可以剥夺那些有:

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" 

希望这有助于!

+0

完美的,正是我所期待的。 – Robert