Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.7k views
in Technique[技术] by (71.8m points)

r - How to change scaling in color key in heatmap.2?

Is there a way to change the color key scale so that values are binned by quantity? For example I have 15 values going from 0-1, and only a few values going from 1 to less than 8. But because my range is 0-8 the scale is so off and a huge chunk of my colours are stuck on the left end of the scale whereas most of it remains red. See image.enter image description here

Here is my dataset used to generate the heatmap below. It is saved to a CSV file.

GeneID  Habitat1    Habitat2    Habitat3    Control
Gene1   0.135   0.248   0.143   0.272
Gene2   0.16    0.455   0.233   0.602
Gene3   0.152   0.08    0.15    0.62
Gene4   4.86    2.93    6.035   3.56
Gene5   0   2.993   4.464   0.356
Gene6   0.071   3.805   6.82    0.587
Gene7   0.46    2.828   3.097   6.45
Gene8   0.92    3.901   3.042   5.58

Here is my R code:

x <- read.csv("heatmapvals_generated.csv", header=TRUE, row.names="GeneID") #snippet from a much larger dataset to create the mini heatmap image, but the number ranges are about the same. Mostly from 0-1 and then a few >1.
y <- data.matrix(x)
colors = c(seq(0,0.018,length=5),
           seq(0.019,0.98,length=50), 
           seq(0.99,1.098,length=5),
           seq(1.099,3,length=20),
           seq(3.099,8,length=20))
my_palette <- colorRampPalette(c("navy","blue","grey","red","darkred"))(n=99)

hm2 <- heatmap.2(y, col=my_palette, trace="none", breaks=colors, margins=c(10,15),
                 scale="none", dendrogram = "none",
                 Colv=F, Rowv=F, cexRow = 1, cexCol=1.2, density.info="none")

I am not sure where I can change the color key scale so that it reads 0-1 and 1-8 equally, and the white (which is value 1) is centered. The actual heatmap is fine.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...