Customizing gplots heatmap.2 - color range for heatmap and legend for RowSideColors
0
0
Entering edit mode
Chao-Jen Wong ▴ 580
@chao-jen-wong-3603
Last seen 9.9 years ago
USA/Seattle/Fred Hutchinson Cancer Reseā€¦
Hi, Kurinji 1. *adjusting color range on heatmap.2* You can use the mighty "breaks" argument to symmetrically bin your data, ranged from 0 to 1, into color. For instance, bk <- seq(0, 1, by=0.025) heatmap.2z.ma, breaks=bk, col=greenred, blah, blah) It should map values around 0.5 to black color. 2. *obtaining a legend for RowSideColors* First, convert your x$USCS to a factor: f <- factor(x$UCSC) library(RColorBrewer) mycol <- brewer.pal(6, "Set1") ## if you only have 6 levels heatmap.2z.ma, ..., RowSideColors=mycol[f]) The legend can be recreated by legend(x="topleft", legend=levels(f), col=mycol[factor(levels(f))], pch=15) If you want to superimpose the legend on the plot generated by heatmap.2(), you will need to adjust the x, y argument of legend() to position the legend to a more plausible place. Cheers, Chao-Jen ----- Original Message ----- From: "Kurinji Pandiyan" <kurinji.pandiyan@gmail.com> To: bioconductor at r-project.org Sent: Friday, October 28, 2011 8:54:47 AM Subject: [BioC] Customizing gplots heatmap.2 - color range for heatmap and legend for RowSideColors Dear All, I am using package gplots - heatmap.2 - function to plot some data. I would really appreciate your help customizing my heatmap in terms of - 1. *adjusting color range on heatmap.2* - I am using color "greenred" and would like this to consistently range from 0-1. Because one of my datasets does not have values ranging all the way to one, the color scale has been adjusted from 0-0.5, with red being 0.5. This is confusing as it is not consistent with all the other heatmaps where red indicates a value of 1. I would like to change the range of the color scale to always be the same, regardless of dataset - always 0 being green and red being 1, with a gradation of black in between (which greenred does by default anyway) 2. *obtaining a legend for RowSideColors* - I am also trying to use a specific column of my dataframe, which has 6 different levels of annotation, to plot RowSideColors - I was able to do this: x <http: hct.delta.body.ma=""/> <- y[,c(3,9:10)] # 3 is the column with the levels of interest - for coloring - and is labeled "USCS" z <http: hct.delta.ma=""/>.ma <- as.matrix(y[,9:10]) mycol <- c("red", "green", "blue", "purple", "yellow", "black") heatmap.2z.ma <http: hct.delta.ma=""/>, col=greenred, scale = "none", trace="none",keysize = 1.5, main = list("Accessibility Plot", cex = 1.5), margins = c(5,5), cexCol = 1, Rowv = "NULL", RowSideColors=mycol[as.integer( x <http: hct.delta.body.ma=""/>$USCS)]) This worked well - only issue is, I am not sure how it picked which color to which value. I was eventually able to figure it out with a small sample set but it will be nice to not have to figure it out and to just use code to produce a legend with color and level name. Please let me know how to produce a legend with the colors used for RowSideColors. I would greatly appreciate someone's input. Thanks, Kurinji Graduate Student [[alternative HTML version deleted]] _______________________________________________ Bioconductor mailing list Bioconductor at r-project.org https://stat.ethz.ch/mailman/listinfo/bioconductor Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor -- Chao-Jen Wong Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Avenue N., M1-B514 PO Box 19024 Seattle, WA 98109 206.667.4485 cwon2 at fhcrc.org
Cancer convert Cancer convert • 13k views
ADD COMMENT

Login before adding your answer.

Traffic: 707 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6