Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

In my code I have a ColorFunction that is meant to highlight all values of $f(x)$ that are greater than $x$

ColorFunction -> (If[#1 >= #2, Red, Black] &)

so that, for example, the parts of the plot of $3\sin^3(x)$ in the figure below that lie above the line $y=x$ should be red, and the parts below, black, but that's not what I get:

enter image description here

What am I missing? I expect I've make some simple (and embarrassing) mistake here, but I'm not seeing it.


Show[
 ParametricPlot[{u, 3 Sin[u]^3}, {u, 0, 2 Pi}, ColorFunction -> (If[#1 >= #2, Red, Black] &), 
  PlotStyle -> {Thickness[.01]}, PlotRange -> All],
 Plot[x, {x, 0, Pi}, PlotStyle -> {Gray, Dashed}]]
share

1 Answer 1

up vote 6 down vote accepted

You are missing ColorFunctionScaling->False

 Show[
   ParametricPlot[{u, 3 Sin[u]^3}, {u, 0, 2 Pi}, 
        ColorFunction -> (If[#1 >= #2, Red, Black] &), 
        PlotStyle -> {Thickness[.01]}, PlotRange -> All, 
        ColorFunctionScaling -> False
   ], 
   Plot[x, {x, 0, Pi}, PlotStyle -> {Gray, Dashed}]
 ]

Mathematica graphics

Note that the black/red boundary isn't very precise. Increasing the number of PlotPoints to, say, 200 helps:

Mathematica graphics

share
    
Well, at least I was right about "dumb and embarrassing". –  raxacoricofallapatorius Nov 4 '12 at 21:52
    
@raxacoricofallapatorius It's just one of those days... –  Sjoerd C. de Vries Nov 4 '12 at 21:56

This site is currently not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .