Re: Plot question
- To: mathgroup at smc.vnet.net
- Subject: [mg80864] Re: Plot question
- From: Szabolcs <szhorvat at gmail.com>
- Date: Tue, 4 Sep 2007 06:33:08 -0400 (EDT)
- Organization: University of Bergen
- References: <fbj2c3$nc9$1@smc.vnet.net>
Yaroslav Bulatov wrote:
> Why does the plot below make all 3 curves the same color?
>
> Plot[{a x, 2 a x, 3 a x} /. a -> 2, {x, 1, 2},
> PlotStyle -> {Red, Green, Blue}]
This is one of the most common questions on MathGroup. The example you
gave doesn't even work in Mathematica 5.2, because
"Plot::plnr {a x, 2 a x, 3 a x} /. a -> 2 is not a machine-size real
number at x = some value"
It is not a number but a list of numbers. But since Plot holds its
first argument, and '{a x, 2 a x, 3 a x} /. a -> 2' is a single
expression (not a list of expressions), Mathematica expects it to
evaluate to a single number (not a list).
Probably it wasn't such a good idea to make this example work in
Mathematica 6. The incorrect colouring just confuses users, and there
is no error message with a hint about what has gone wrong.
The solution is to evaluate '{a x, 2 a x, 3 a x} /. a -> 2' before
passing it to Plot[] :
Plot[{a x, 2 a x, 3 a x} /. a -> 2 // Evaluate, {x, 1, 2}, PlotStyle ->
{Red, Green, Blue}]
Szabolcs