簡體   English   中英

R中的熱圖(使用heatmap()函數)

[英]Heatmap in R (using the heatmap() function)

我有一個相關矩陣,想要獲得從冷(負相關)到紅色(正相關)的熱圖,白色為0相關。

現在,即使我說“ scale = none”,heatmap命令似乎也以某種方式是平均的,這意味着平均相關性被描繪成白色(在我的情況下是0.2,意味着所有0相關性都略帶藍色)。

你能幫我解決這個問題嗎? 謝謝

library(stats)
library(gplots)
library(RColorBrewer)
heatmap(graph.g,Colv = NA, Rowv=NA, revC=T, scale='none', 
    xlab= "IDS-C30 symptoms", main = "Heatmap of glasso associations",
    col = rev(brewer.pal(11,"RdBu")))

在此處輸入圖片說明

這不是一個很好的解決方案,但似乎可以完成工作。 要點是將頻譜限制在相關矩陣所取值的范圍內,並使其更平滑,以從brewer.pal提供的11個值的最大值brewer.pal (使用奇數次重復,以使中位數保持為整數) )。

vec <- rep(rev(brewer.pal(11,"RdBu")), each = 101)  # stretched palette
med <- (length(vec) + 1) / 2  # middle of palette
rad <- length(vec) - med  # radius of palette
min.g <- med + min(graph.g) * rad  # lowest value taken
max.g <- med + max(graph.g) * rad  # highest value taken
heatmap(graph.g,Colv = NA, Rowv=NA, revC=T, scale='none',
    xlab= "IDS-C30 symptoms", main = "Heatmap of glasso associations",
    col = vec[min.g:max.g])  # palette restricted to realized values

對於相關矩陣,您還可以使用專門為此設計的corrplotcorrgram庫。 它們開箱即用,還具有其他繪圖功能。 R圖形食譜 ,你可以找到例子的如何繪制這樣的情節用GGPLOT2 geom_tile()geom_raster()函數。

library(corrplot)
library(corrgram)
library(ggplot2)
library(reshape2)

corrplot(cor(mtcars))
corrplot(cor(mtcars), method="color")
corrgram(cor(mtcars))
corrgram(cor(mtcars), lower.panel=panel.shade,
         upper.panel=panel.pie)

p <- ggplot(melt(cor(mtcars)), aes(x=Var1, y=Var2, fill=value))
p + geom_tile() + scale_fill_gradient2(midpoint=0, limits=c(-1, 1))

在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM