拓端tecdat|如何在R語(yǔ)言中建立六邊形矩陣熱圖heatmap可視化
原文鏈接:http://tecdat.cn/?p=18879
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
這是一個(gè)六邊形熱圖可視化程序,主要用到的知識(shí)RColorBrewer,fields,也就是R中的可視化繪圖庫(kù)。
本文希望SOM的結(jié)果以六邊形熱圖可視化。讓我向您展示如何在R中創(chuàng)建六邊形熱圖!

您必須根據(jù)自組織神經(jīng)網(wǎng)絡(luò)(SOM)的結(jié)果來(lái)創(chuàng)建自己的變量?。輸入變量?Heatmap_Matrix
?變量是一個(gè)矩陣,可以作為熱圖的數(shù)字表示。
因此,矩陣具有與SOM映射相同的行數(shù)和與SOM映射相同的列數(shù),并且熱圖中的每個(gè)值表示一個(gè)六邊形的值。這里?[1,1]
?將成為左下節(jié)點(diǎn)(第一行,第一列),[1,2]
?將成為右側(cè)的節(jié)點(diǎn),?將成為?[2,1]
?第二行中左側(cè)的第一個(gè)節(jié)點(diǎn),依此類推。因此,從視覺(jué)上看,順序從左下到右上,而在矩陣中,則從左上到右下。
碼
library(RColorBrewer) #使用brewer.pal
library(fields) #使用designer.colors
#為每個(gè)六角形創(chuàng)建多邊形的功能
#從一個(gè)矩陣開(kāi)始,該矩陣將作為您的熱圖的數(shù)字表示形式,稱為Heatmap_Matrix
x <- as.vector(map_Matrix)
#此矩陣具有與SOM映射相同的行數(shù)和與SOM映射相同的列數(shù),并且熱圖中的每個(gè)值表示一個(gè)六邊形的值
#在這里[1,1]將成為左下節(jié)點(diǎn)(第一行,第一列),[1,2]將成為右節(jié)點(diǎn)[2,1]將成為第二行左側(cè)的第一個(gè)節(jié)點(diǎn)
#因此,從視覺(jué)上看,可以從左下到右上工作
#SOM的行數(shù)和列數(shù)
Rows <- dim(map_Matrix)[1]
Columns <- dim(map_Matrix)[2]
#為圖例騰出空間
par(mar = c(0.2, 2, 2, 7))
#啟動(dòng)繪圖窗口,但確實(shí)顯示繪圖上的所有軸或點(diǎn)
plot(0, 0, type = "n", axes = FALSE, xlim=c(0, ?Columns),
ylim=c(0, ?Rows), xlab="", ylab= "", asp=1)
#創(chuàng)建調(diào)色板
#我使用designer.colors在Brewer中允許的最大數(shù)量的數(shù)值之間插入50種顏色
ColRamp <- rev(designer.colors(n=50, col=brewer.pal(9, "Spectral") )
#制作一個(gè)向量,其長(zhǎng)度(ColRamp)的bin數(shù)在x的最小值與最大值之間.
#接下來(lái),將x中的每個(gè)點(diǎn)與ColorRamp中的一種顏色進(jìn)行匹配
ColorCode <- rep("#FFFFFF", length(x)) #默認(rèn)為全白
for (i in 1:length(x))
if (!is.na(x[i])) ColorCode[i] <- ColRamp[which.min(abs(Bins-x[i]))]
#在圖上實(shí)際繪制六角形多邊形
offset <- 0.5 #向上移動(dòng)時(shí)六邊形的偏移量
for (row in 1: Rows) {
for (column in 0:( Columns - 1))
agon(column + offset, row - 1, col = ColorCode[row + ?Rows * column])
offset <- ifelse(offset, 0, 0.5)
}
#在右側(cè)添加圖例
image(legend.only=TRUE, col=ColRamp, zlim=c(min(x, na.rm=T), max(x, na.rm=T)))

能夠讀取顏色含義的圖例
在最后,創(chuàng)建圖例,您將獲得與上圖類似的熱圖。
希望我的解釋和代碼能幫助您在R中創(chuàng)建自己漂亮的熱圖。

最受歡迎的見(jiàn)解
1.R語(yǔ)言動(dòng)態(tài)圖可視化:如何、創(chuàng)建具有精美動(dòng)畫的圖
2.R語(yǔ)言生存分析可視化分析
3.Python數(shù)據(jù)可視化-seaborn Iris鳶尾花數(shù)據(jù)
4.r語(yǔ)言對(duì)布豐投針(蒲豐投針)實(shí)驗(yàn)進(jìn)行模擬和動(dòng)態(tài)
5.R語(yǔ)言生存分析數(shù)據(jù)分析可視化案例
6.r語(yǔ)言數(shù)據(jù)可視化分析案例:探索brfss數(shù)據(jù)數(shù)據(jù)分析
7.R語(yǔ)言動(dòng)態(tài)可視化:制作歷史全球平均溫度的累積動(dòng)態(tài)折線圖動(dòng)畫gif視頻圖
8.R語(yǔ)言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報(bào)告
9.python主題LDA建模和t-SNE可視化