Re: Piecewise ColorFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg125694] Re: Piecewise ColorFunction
- From: "djmpark" <djmpark at comcast.net>
- Date: Thu, 29 Mar 2012 02:59:16 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <3471125.41441.1332916310253.JavaMail.root@m06>
Because Rule has higher precedence than &. Without the parentheses the entire Rule is the Function. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/index.html From: Alexei Boulbitch [mailto:Alexei.Boulbitch at iee.lu] On Sunday, March 25, 2012 12:19:21 AM UTC-5, Hugh Goyder wrote: > The first example below works to give a plot style with colours that > vary with y-values. I then try to define a Piecewise function for the colour and this does not work. Am I doing something wrong? Thanks for any assistance. > > Plot[Sin[x], {x, 0, 4 Pi}, PlotStyle -> Thick, ColorFunction -> > Function[{x, y}, ColorData["NeonColors"][y]]] > > > ClearAll[f]; > f[x_, y_] := Piecewise[{{Green, y < 0}, {Red, y >= 0}}] > > > Plot[Sin[x], {x, 0, 4 Pi}, PlotStyle -> Thick, ColorFunction -> f] I think this does what you want: Plot[Sin[x], {x, 0, 4 Pi}, PlotStyle -> Thick, ColorFunctionScaling -> False, ColorFunction -> (Piecewise[{{Green, #2 < 0}, {Red, #2 >= 0}}] &)] Dear community, In the above solution (given by David) the parentheses play an intriguing role. Indeed the solution above works, while the same solution but without the round parentheses flanking the Piecewise function, i.e. the following: Plot[Sin[x], {x, 0, 4 Pi}, PlotStyle -> Thick, ColorFunctionScaling -> False, ColorFunction -> Piecewise[{{Green, #2 < 0}, {Red, #2 >= 0}}] &] does not work. I wonder, why? Alexei BOULBITCH, Dr., habil. IEE S.A. ZAE Weiergewan, 11, rue Edmond Reuter, L-5326 Contern, LUXEMBOURG Office phone : +352-2454-2566 Office fax: +352-2454-3566 mobile phone: +49 151 52 40 66 44 e-mail: alexei.boulbitch at iee.lu