Re: Coloring curves: not as simple as it sounds..
- To: mathgroup at smc.vnet.net
- Subject: [mg118155] Re: Coloring curves: not as simple as it sounds..
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Thu, 14 Apr 2011 07:08:22 -0400 (EDT)
- References: <io6d17$dpl$1@smc.vnet.net>
On 14/04/2011 09:59, Jean-Michel Di Nicola wrote: > All, > > I have a question that looks fairly trivial, but I cannot solve it.... > Please help! > > Thanks, JM > > Here is a simplified toy example. > When I type > Plot[{a x /. {a -> 1}, a x^2 /. {a -> 1}, a x^3 /. {a -> 1}}, {x, 0, > 2}, PlotStyle -> {Red, Green, Blue}] > I get 3 curves with different colors. > > Well, when I type > Plot[{a x, a x^2, a x^3} /. {a -> 1}, {x, 0, 2}, > PlotStyle -> {Red, Green, Blue}] > I get 3 curves but they are all blue, WHY? > > However, when I evaluate {a x /. {a -> 1}, a x^2 /. {a -> 1}, a x^3 /. > {a -> 1} and {a x, a x^2, a x^3} /. {a -> 1}, they both give the same > result....{x, x^2, x^3}. > > Thank you for your help!!! > Plot looks at its argument to see if it is a list before it starts to evaluate it at particular points - so if the list structure is only apparent after evaluation, it doesn't work as required. This fixes it: Plot[Evaluate[{a x, a x^2, a x^3} /. {a -> 1}], {x, 0, 2}, PlotStyle -> {Red, Green, Blue}] The fact that it plotted at all, surprised me, so I did a couple of experiments: This plots two curves Plot[If[x<-2,x^2,{x^2,x^3}],{x,1,10}] But if the expression to be plotted only returns a list for part of the range, only one curve results! Plot[If[x<2,x^2,{x^2,x^3}],{x,1,10}] David Bailey http://www.dbaileyconsultancy.co.uk