Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: Curve Tracking and fetching Locator coordinates
  • Next by Date: Re: Curve Tracking and fetching Locator coordinates
  • Previous by thread: Re: ContourPlot ColorFunction Question
  • Next by thread: [Wavelet] How to convert scales to frequencies?