Hi guys, I have a matrix with values varying from approximately -0.7 to 0.33 that I want to create a heatmap/levelplot with. When I execute the levelplot function for my matrix, I end up getting colors that are adjusted to the max and min rather than around 0. In other words, ideally I would like to have a color ramp that goes from red (negative number), to white (0), to blue (positive); however, right now the value 0 is in the blue. Any insight on how to address this problem? Thanks in advance! example... my matrix "y" looks something like this A B C D E row1 -0.5046406 -0.021579587 -0.4419101 -0.2999195330 -0.4845047 row2 -0.3070091 -0.059065936 0.3329806 -0.0519335420 -0.5766368 row3 -0.7271707 0.073282855 -0.3181990 -0.2485017700 -0.5732781 row4 0.3329806 -0.017762750 -0.1513197 -0.1016354970 0.2528442 levelplot(y) yields a color scale from red (-0.8 to 0.2) to blue (0.2 to 0.4) I'd want the color scale to be from red (-0.8 to 0) to blue (0 to 0.4) ----- Lanna -- View this message in context: http://r.789695.n4.nabble.com/adjusting-levelplot-color-scale-to-data-tp3997342p3997342.html Sent from the R help mailing list archive at Nabble.com.
Hi, Try specifying explicit break points together with their corresponding colors using at and col.regions, levelplot(m, at= unique(c(seq(-2, 0, length=100), seq(0, 10, length=100))), col.regions = colorRampPalette(c("blue", "white", "red"))(1e3)) HTH, baptiste On 7 November 2011 16:08, Lanna Jin <lannajin at gmail.com> wrote:> Hi guys, > > I have a matrix with values varying from approximately -0.7 to 0.33 that I > want to create a heatmap/levelplot with. > > When I execute the levelplot function for my matrix, I end up getting colors > that are adjusted to the max and min rather than around 0. In other words, > ideally I would like to have a color ramp that goes from red (negative > number), to white (0), to blue (positive); however, right now the value 0 is > in the blue. > > Any insight on how to address this problem? > > Thanks in advance! > > example... > my matrix "y" looks something like this > ? ? ? ? ? ? ? ? A ? ? ? ? ? ? ? ? B ? ? ? ? ? ? ? ? ? ? ?C > D ? ? ? ? ? ? ? ? ? ?E > ?row1 ? ? ? ? -0.5046406 -0.021579587 ? ?-0.4419101 -0.2999195330 > -0.4845047 > ?row2 ? ? ? ? -0.3070091 -0.059065936 ? ? 0.3329806 -0.0519335420 > -0.5766368 > ?row3 ? ? ? ? -0.7271707 ?0.073282855 ? ?-0.3181990 -0.2485017700 > -0.5732781 > ?row4 ? ? ? ? ?0.3329806 -0.017762750 ? ?-0.1513197 -0.1016354970 > 0.2528442 > > levelplot(y) yields a color scale from red (-0.8 to 0.2) to blue (0.2 to > 0.4) > I'd want the color scale to be from red (-0.8 to 0) to blue (0 to 0.4) > > > > ----- > Lanna > -- > View this message in context: http://r.789695.n4.nabble.com/adjusting-levelplot-color-scale-to-data-tp3997342p3997342.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
On Nov 6, 2011, at 10:08 PM, Lanna Jin wrote:> Hi guys, > > I have a matrix with values varying from approximately -0.7 to 0.33 > that I > want to create a heatmap/levelplot with. > > When I execute the levelplot function for my matrix, I end up > getting colors > that are adjusted to the max and min rather than around 0. In other > words, > ideally I would like to have a color ramp that goes from red (negative > number), to white (0), to blue (positive); however, right now the > value 0 is > in the blue. > > Any insight on how to address this problem??levelplot # which leads to" ?level.colors # which in turn leads to: ? colorRamp levelplot(as.matrix(dat), at=seq( -.8, .4, length=31), col=color.palette(30) ) And next time, please post the output of dput rather than a mangled print() output. -- David.> > Thanks in advance! > > example... > my matrix "y" looks something like this > A B C > D E > row1 -0.5046406 -0.021579587 -0.4419101 -0.2999195330 > -0.4845047 > row2 -0.3070091 -0.059065936 0.3329806 -0.0519335420 > -0.5766368 > row3 -0.7271707 0.073282855 -0.3181990 -0.2485017700 > -0.5732781 > row4 0.3329806 -0.017762750 -0.1513197 -0.1016354970 > 0.2528442 > > levelplot(y) yields a color scale from red (-0.8 to 0.2) to blue > (0.2 to > 0.4) > I'd want the color scale to be from red (-0.8 to 0) to blue (0 to 0.4) > > > > ----- > Lanna > -- > View this message in context: http://r.789695.n4.nabble.com/adjusting-levelplot-color-scale-to-data-tp3997342p3997342.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.David Winsemius, MD West Hartford, CT