R作弊图比例尺与作弊图前比例尺不同

时间:2019-06-04 15:54:35

标签: r scale pheatmap

之前缩放时的热图
mat_scaled<-scale(t(mat))
pheatmap(t(mat_scaled),show_rownames = F,show_colnames = F,border_color=F,color = colorRampPalette(brewer.pal(6,name="PuOr"))(12))

heatmap scaling before plotting 比例从[-2,6]变为完全不同于在pheatmap函数中使用比例

pheatmap(t(mat_scaled),scale = "row",show_rownames = F,show_colnames = F,border_color=F,color = colorRampPalette(brewer.pal(6,name="PuOr"))(12))

heatmap scaled within pheatmap function 比例从[-6,6]设置。 为什么会有这种差异?如何获得第二张图中表示的矩阵?

1 个答案:

答案 0 :(得分:0)

在第二张图中,您使用mat_scaled的选项scale="row"绘制了第二次缩放的缩放矩阵pheatmap的热图。
这不是比较内部和外部缩放比例的正确方法。
解决方法如下:

library(gridExtra)
library(pheatmap)
library(RColorBrewer)
cols <- colorRampPalette(brewer.pal(6,name="PuOr"))(12)
brks <- seq(-3,3,length.out=12)  
data(attitude)
mat <- as.matrix(attitude)

# Scale by row
mat_scaled <- t(scale(t(mat)))

p1 <- pheatmap(mat_scaled, show_rownames=F, show_colnames=F, 
         breaks=brks, border_color=F, color=cols)

p2 <- pheatmap(mat, scale="row", show_rownames=F, show_colnames=F, 
         breaks=brks, border_color=F, color=cols)

grid.arrange(grobs=list(p1$gtable, p2$gtable))

enter image description here