基于R、python的科研绘图数据可视化R语言学习笔记与基本应用

R中热力图的两种绘制方法-ggplot和pheatmap

2018-08-25  本文已影响104人  画长空_yin

热力图是在科研过程中经常会使用到的,如对多组相关系数的可视化。本文介绍基于ggplot2包和pheatmap包进行热力图的绘制。
数据格式如下:


image.png

基于ggplot的热力图绘制

library (ggplot2)
library (reshape2)
setwd("D:/example/") #设定数据的存放路径
data1<-read.csv('a4.csv',header = TRUE)  #读取文件
data2<- melt (data1, id="Month") #转化成长数据集
data2$variable= factor(data2$variable, levels=c('EL10_TMP','EL14_TMP','EL18_TMP','EL10_PRE','EL14_PRE','EL18_PRE','EL10_PDSI','EL14_PDSI','EL18_PDSI'))   #设置顺序 
data2$Month= factor(data2$Month, levels=c('P.Jun','P.Jul','P.Aug','P.Sep','P.Oct','P.Nov','P.Dec','C.Jan','C.Feb','C.Mar','C.Apr','C.May','C.Jun','C.Jul','C.Aug','C.Sep','C.Oct'))   ## 设置顺序
p1<-ggplot(data2,aes(x=Month,y=variable,fill=value)) #热力图绘制
p2<-p1+geom_raster()+ scale_fill_gradient2(low="red", high="darkgreen", mid="white") #填充不同的颜色

结果如下所示:


image.png

针对里面的字体和文字大小等的设置可参考《基于ggplot2的常用柱状图模板的设置》,或将该图输出为pdf后,在pdf编辑中进行编辑。

基于pheatmap包的绘制

数据格式如下:


image.png

注意:数据来源与上面一致,但在这里首先是在excel中调整了列的顺序,让顺序和上面中代码的顺序保持一致了。同时去掉了Month这一列。
代码如下

library(pheatmap)
library(RColorBrewer) 
setwd("D:/example/")
data1<-read.csv('a4.csv',header = TRUE)
pheatmap(data1)
p3<-pheatmap(data1,
         color=brewer.pal(11,"PRGn"),
         cellwidth = 20,
         cellheight = 10,
         cluster_rows = FALSE,
         cluster_cols = FALSE,
         labels_row=c('P.Jun','P.Jul','P.Aug','P.Sep','P.Oct','P.Nov','P.Dec','C.Jan','C.Feb','C.Mar','C.Apr','C.May','C.Jun','C.Jul','C.Aug','C.Sep','C.Oct'),
         fontsize = 12,
         #display_numbers = TRUE,
         number_color = "black",
)

出来的结果如下:


image.png

如果对颜色的配置不满意,可改变color=brewer.pal(11,"PRGn")中的"PRGN",该里面的参数含义如下图


image.png
改变color=brewer.pal(11,"PRGn")中的"PRGN"为BrBG则呈现如下效果
image.png

详细可参考https://blog.csdn.net/chang349276/article/details/77476848

上一篇下一篇

猜你喜欢

热点阅读