Re: DensityPlot colours misbehaving
- To: mathgroup at smc.vnet.net
- Subject: [mg78727] Re: [mg78705] DensityPlot colours misbehaving
- From: Carl Woll <carlw at wolfram.com>
- Date: Sun, 8 Jul 2007 06:03:48 -0400 (EDT)
- References: <200707071005.GAA05698@smc.vnet.net>
Tim Birks wrote: >I have Mathematica v6 and am running code that worked fine with v5. OS is >Windows XP. Here's a particularly annoying unexplained difference between >the two versions. > >DensityPlot[Exp[-x], {x, 0., 4.}, {y, 0., 4.}, ColorFunctionScaling -> >False] > >behaves as expected, giving a nice gradual horizontal grading of colour from >white on the left to blue/violet on the right. > >In contrast, > >DensityPlot[Exp[-x - y], {x, 0., 4.}, {y, 0., 4.}, ColorFunctionScaling -> >False] > >which should give a similar grading from lower-left to upper-right, instead >gives a mostly blue/violet field with a pure white triangular wedge in the >lower-left corner. The discontinuous jump between the two occurs roughly >where x+y=1.4. > >Re-plotting with x and y running from 0 to 2 instead of 4 makes the white >triangle appear smaller rather than bigger. Note the setting of >ColorFunctionScaling means that the colour at a particular point (x,y) >shouldn't depend on what's happening elsewhere; also note that the functions >plotted are very simple, well-behaved and evaluate to between 0 and 1 in the >ranges plotted. > >Can anyone please explain what is happening, how it can be fixed, and why it >is not a bug? > >Apologies if this has been asked before. I have searched the posts available >on my news reader and found nothing relevant. > >T. > > > > DensityPlot is not using the full PlotRange, as the highest value, 1, is several orders of magnitude larger than the smallest value Exp[-8] ~= .00034. To correct this, use PlotRange->All: DensityPlot[Exp[-x - y], {x, 0., 4.}, {y, 0., 4.}, ColorFunctionScaling -> False, PlotRange -> All] If you don't like the default color choice, you can use one of the ColorData gradients, e.g.: DensityPlot[Exp[-x - y], {x, 0., 4.}, {y, 0., 4.}, ColorFunction -> ColorData["Rainbow"], ColorFunctionScaling -> False, PlotRange -> All] By the way, for this example, ColorFunctionScaling doesn't do anything, because (as you say) the range of values is already 0 to 1. Carl Woll Wolfram Research
- References:
- DensityPlot colours misbehaving
- From: "Tim Birks" <pystab@hotmail.com>
- DensityPlot colours misbehaving