2017-07-27 156 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