r语言画相关性热图能自动识别数据分布类型吗

Python029

r语言画相关性热图能自动识别数据分布类型吗,第1张

Step1. 绘图数据的准备

首先还是要把你想要绘图的数据调整成R语言可以识别的格式, 在excel中保存成csv。

数据的格式如下图:

Step2. 绘图数据的读取

data <- read.csv(“your file path”, header = T)

登录后复制

Step3.绘图所需package的调用

library(pheatmap) ## 调用之前先安装install.packages("pheatmap")

登录后复制

Step4.绘图

df <- data[,-c(11,12)]

bk <- c(seq(-3, 2,by = 0.01))

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

display_numbers = F,

border_color = "black",

color = colorRampPalette(c("blue","white", "red"))(length(bk)))

登录后复制

调整行标签

得到上图之后,小仙发现行名是"1", “2”, “3”… ,并不是想要的"Group 1",“Group 2”, “Group 3”…

原来需要将df的rownames重新赋值一下

rownames(df) <- data$Group

rownames(df)

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

display_numbers = F,

border_color = "black",

color = colorRampPalette(c("blue","white", "red"))(length(bk)))

登录后复制

添加行注释

很多时候数据不只一列标签,在画热图的时候除了行名或者列名之外,还要添加注释标签

annotation_row = data.frame(Class = factor(data$Class))

rownames(annotation_row) <- data$Group

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

annotation_legend = T,

display_numbers = F,

annotation_row = annotation_row,

border_color = "black",

color = colorRampPalette(c("blue","white", "red"))(length(bk)))

登录后复制

调整热图色块和行注释的颜色

mycolors <- c("#66C2A5","#FC8D62","#E78AC3")

names(mycolors) <- unique(annotation_row$Class)

mycolors <- list(Class = mycolors)

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

annotation_legend = T,

display_numbers = F,

annotation_row = annotation_row,

annotation_colors = mycolors,

border_color = "black",

color = colorRampPalette(c("navy", "white", "firebrick3"))(length(bk)))

登录后复制

采用默认颜色

如果希望使用pheatmap包默认的色块颜色,只要将以下的语句删掉就可以。

当然不行了,plot函数中都没有参数add。

plot用于画散点图,就算两个plot合并也是个散点图。

为什么不换个角度想想,如果将要plot的两组数据合并之后再plot,效果不就达到了