RE: RE: Fill the space surrounded by two contours lines with different colors

*To*: mathgroup at smc.vnet.net*Subject*: [mg36496] RE: [mg36458] RE: [mg36422] Fill the space surrounded by two contours lines with different colors*From*: "DrBob" <drbob at bigfoot.com>*Date*: Mon, 9 Sep 2002 00:29:41 -0400 (EDT)*Reply-to*: <drbob at bigfoot.com>*Sender*: owner-wri-mathgroup at wolfram.com

This might be a convenient way of defining color functions: ClearAll[cfun] cfun[colors_List, brkPts_List] /; Length@colors == Length@brkPts := Function[z, Which @@ Sequence@Flatten@Transpose[{Less[z, #] & /@ brkPts, colors}]] colors = {White, RoyalBlue, White, Red, White}; brkPts = {-0.6, -0.42, 0.4, 0.6, Infinity}; ContourPlot[f[x, y], { x, 0, Pi}, {y, 0, Pi}, PlotPoints -> 30, ColorFunctionScaling -> False, ColorFunction -> cfun[colors, brkPts], Contours -> contourvalues]; colors = {Yellow, Peru, Salmon, Apricot, HotPink, Linen}; brkPts = {-0.6, -0.42, 0.2, 0.4, 0.6, Infinity}; Timing[ContourPlot[f[x, y], {x, 0, Pi}, {y, 0, Pi}, PlotPoints -> 30, ColorFunctionScaling -> False, ColorFunction -> cfun[colors, brkPts], Contours -> contourvalues];] Bobby Treat -----Original Message----- From: David Park [mailto:djmp at earthlink.net] To: mathgroup at smc.vnet.net Subject: [mg36496] [mg36458] RE: [mg36422] Fill the space surrounded by two contours lines with different colors Jun Lin, Here is an example. Needs["Graphics`Colors`"] Let's make a contour plot of this function. f[x_, y_] := Sin[x]Sin[2y] Let's specify the exact contours to use. I got rid of the 0. contour because it is difficult to obtain in this plot. contourvalues = Complement[Range[-1, 1, 0.2], {0.}] {-1, -0.8, -0.6, -0.4, -0.2, 0.2, 0.4, 0.6, 0.8, 1.} Now we define a ColorFunction for the plot. I actually colored two different bands to show how you can make a general color function to give each band a desired color. cfun[z_] := Which[ -0.6 < z < -0.42, RoyalBlue, 0.4 < z < 0.6, Red, True, White] ContourPlot[f[x, y], {x, 0, Pi}, {y, 0, Pi}, PlotPoints -> 30, ColorFunctionScaling -> False, ColorFunction -> cfun, Contours -> contourvalues]; Using the option ColorFunctionScaling -> False says that the z value will be the actual value of f[x,y]. Otherwise, in general, it will be scaled between 0 and 1. It is easier to write a color function when z is the actual value of the function. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Jun Lin [mailto:jl_03824 at yahoo.com] To: mathgroup at smc.vnet.net I need to fill the space between two contour lines, C1 and C2, with red color, and leave the other place white. What trick I have to use? Any suggestion and advice will be appreciated. Jun Lin