1 基础绘制
R绘制热图时,数据需要输入一个矩阵,可以用as.matrix()把它转换成矩阵。这里利用R自带的数据集绘制热图。
> # 数据
> data <- as.matrix(mtcars)
>
> # 绘制热图
> heatmap(data)
OUTPUT:
热图的每一列是一个变量,每一行是一个观察值,每个方块是一个值,越接近黄色越高。
t(data)可以对矩阵进行转置,交换热图的X和Y轴。
2 正态化
# 正态化
> heatmap(data, scale="column")
OUTPUT:
3 取消树状图与排序
heatmap()使用聚类算法对变量和观测值进行了重新排序,与原mtcar矩阵相比,行和列的顺序都是不同的。
此外,如果要取消热图旁边相应的树状图,可以使用Rowv和Colv参数,如下所示。
> heatmap(data, Colv = NA, Rowv = NA, scale="column")
OUTPUT:
4 改变颜色
有多种方式可以改变热图颜色,如cm.colors(),terrain.color(),RColorBrewer等等
> heatmap(data, scale="column", col = terrain.colors(256))
OUTPUT:
5 自定义
可以用main和xlab/ylab参数来设置标题和轴标题;也可以用labRow/colRow改变标签,用cexRow/cexCol改变标签的大小;还可以使用RowSideColors参数在heatmap旁边添加一个颜色矢量来表示预期结构,将观察到的结构与预期结构进行比较。
# 设置轴名和标题
> heatmap(data, col = coul, xlab="variable", ylab="car", main="Heatmap")
OUTPUT:
> heatmap(data, scale="column", cexRow=0.8, labRow=paste("new_", rownames(data),sep=""), col= colorRampPalette(brewer.pal(3, "Blues"))(30))
OUTPUT:
> heatmap(data, Colv = NA, Rowv = NA, scale="column" , RowSideColors=colSide, col=colMain)
OUTPUT: