本期介紹一個控制熱圖顏色范圍并規(guī)定指定值顏色的小技巧。
使用的是R語言的pheatmap包,先生成隨機數(shù)據(jù):
set.seed(100)
data1<-c(runif(20,min=-2,max=2),rnorm(380,2,2))
data1<-matrix(sample(data1,400,replace = F),nrow=20)
data1如下:

查看數(shù)據(jù)范圍:
range(data1)

使用上面的矩陣做熱圖,要求低值為藍色,高值為紅色,中間值為白色:
pheatmap(data1,
scale = "none",
color = colorRampPalette(colors = c("blue","white","red"))(100)
)
結果如下:

數(shù)據(jù)data1的數(shù)值范圍是-4到8.6,所以上圖的色條范圍也是-4到8.6。但由于0的位置比較特殊,現(xiàn)在要求0的位置為白色,并且色條范圍為-9到9,這里使用breaks參數(shù)重新定義色條范圍并根據(jù)break范圍劃分顏色范圍,代碼如下:
#breaks
bk <- c(seq(-9,-0.1,by=0.01),seq(0,9,by=0.01))
# 做熱圖:
pheatmap(data1,
scale = "none",
color = c(colorRampPalette(colors = c("blue","white"))(length(bk)/2),colorRampPalette(colors = c("white","red"))(length(bk)/2)),
legend_breaks=seq(-8,8,2),
breaks=bk)
結果如下:

更多原創(chuàng)精彩視頻敬請關注生信雜談:
