Re: ContourPlot ColorFunction Question
- To: mathgroup at smc.vnet.net
- Subject: [mg119459] Re: ContourPlot ColorFunction Question
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sun, 5 Jun 2011 07:01:47 -0400 (EDT)
You have to turn off ColorFunctionScaling. Here are the two branches plotted separately, including list plots for the arguments passed to ColorFunction: {y1, y2} = y /. Solve[y^2 + x == y, y]; {plot, args} = Reap@Plot[y1, {x, -3, 2}, Frame -> True, Axes -> False, PlotRange -> {-2, 2}, AspectRatio -> 1, ColorFunctionScaling -> False, ColorFunction -> ((Sow@{#1, #2}; If[#2 > 0, Red, Green]) &)]; args = First@args; Show[plot, ListPlot@args] {plot, args} = Reap@Plot[y2, {x, -3, 2}, Frame -> True, Axes -> False, PlotRange -> {-2, 2}, AspectRatio -> 1, ColorFunctionScaling -> False, ColorFunction -> ((Sow@{#1, #2}; If[#2 > 0, Red, Green]) &)]; args = First@args; Show[plot, ListPlot@args] Try the same without ColorFunctionScaling -> False, to fully see what's going on in your original code. Bobby On Sat, 04 Jun 2011 05:21:30 -0500, Jody Sorensen <jodo11 at yahoo.com> wrote: > Thanks for the suggestions. It's an improvement, but it still doesn't > do what I think it should be doing. In this simple example: > > Plot[x /. Solve[x^2 + c == x, x], {c, -3, 2}, Frame -> True, > Axes -> False, PlotRange -> {-2, 2}, AspectRatio -> 1, > ColorFunction -> (If[#2 > 0, Red, Green] &)] > > the whole graph is drawn in red, whereas anything below the axis should > be green. > > Any ideas? > > Jody Sorensen > > --- On Fri, 6/3/11, Bob Hanlon <hanlonr at cox.net> wrote: > > From: Bob Hanlon <hanlonr at cox.net> > Subject: [mg119452] Re: [mg119436] ContourPlot ColorFunction Question > To: mathgroup at smc.vnet.net, "Jody Sorensen" <jodo11 at yahoo.com> > Date: Friday, June 3, 2011, 7:26 AM > > > For ContourPlot, there is only one argument for ColorFunction. That > argument is the contour levels. > > ContourPlot[x^2 + c - x, {c, -2, 2}, {x, -2, 2}, > ColorFunction -> (If[# > 0, Red, Green] &), > Contours -> {0}] > > Plot[ > Evaluate[x /. Solve[x^2 + c == x, x]], > {c, -2, 2}, > Frame -> True, > Axes -> False, > PlotRange -> {-2, 2}, > AspectRatio -> 1, > PlotStyle -> {Green, Red}] > > Plot[ > x /. Solve[x^2 + c == x, x], > {c, -2, 2}, > Frame -> True, > Axes -> False, > PlotRange -> {-2, 2}, > AspectRatio -> 1, > ColorFunction -> (If[2 #2 > 1, Red, Green] &)] > > > Bob Hanlon > > ---- Jody Sorensen <jodo11 at yahoo.com> wrote: > > ========================== > I'm new to this list and possibly out of my depth, but I'd appreciate > any help on this issue. > > We are trying to plot an implicit function using ContourPlot and have > the points on the curve colored based on the x and y values (which we > call c and x) - specifically based on the value of the derivative. > > We have tried things like the following without success, even though > similar commands work with Plot: > ContourPlot[x^2+c = x, {c, -2, 2}, {x, -2, 2}, > ColorFunction -> (If[2 #1 > 1, Red, Green] &)] > > Any suggestions or solutions would be great to hear! > > Thanks! > Jody Sorensen -- DrMajorBob at yahoo.com