Re: Plot function with two arguments
- To: mathgroup at smc.vnet.net
- Subject: [mg122115] Re: Plot function with two arguments
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>
- Date: Sat, 15 Oct 2011 06:02:27 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j79109$i3b$1@smc.vnet.net>
On Fri, 14 Oct 2011 10:56:25 +0100, Alexei Boulbitch
<Alexei.Boulbitch at iee.lu> wrote:
> "Remove Evaluate, and all the curves will be the same color."
>
> Why actually it behaves this way?
>
> This:
>
> f[x_, k_] := (k*x^2 - x)/(x - k);
> Plot[Table[f[x, k], {k, -3, 3}], {x, -20, 20}]
>
> indeed yields all lines of the same colour. However, this:
>
> lst=Table[f[x, k], {k, -3, 3}];
> Plot[lst, {x, -20, 20}]
>
> returns the lines with different colours. I would appreciate, if one
> explains the reason For such a behaviour.
>
> Thank you, Alexei
Plot has HoldAll. By the looks of it, a check is done to see if the first
argument has head List; if so, Plot understands that it is being given a
list of functions and colours them accordingly. If the Head is not List,
though (for example, in this case it would be Table), Plot treats it as a
single, vector-valued function, with all branches plotted using the same
style.