Re: What's going on here (Table-generated lists)?
- To: mathgroup at smc.vnet.net
- Subject: [mg97982] Re: [mg97956] What's going on here (Table-generated lists)?
- From: Sseziwa Mukasa <mukasa at gmail.com>
- Date: Fri, 27 Mar 2009 05:34:26 -0500 (EST)
- References: <200903261024.FAA21474@smc.vnet.net>
On Mar 26, 2009, at 6:24 AM, Erik Max Francis wrote: > I'm seeing a difference in behavior with Plot in conjunction with > Table, > and I'm rather confused at the reason. If I use Plot to plot a list > of functions, it works as expected, and I get a plot with each > function > in its own color: > > Plot[{x, 2 x, 3 x, 4 x, 5 x}, {x, -1, 1}] > > If I use Table, then this doesn't work the same way -- the five lines > are all plotted with the same color: > > Plot[Table[k x, {k, 1, 5}], {x, -1, 1}] > > I verified that the both objects created have a Head of List, so I > don't > see anything obviously different about them. > > Here's what confuses me more: If I generate the table separately and > then use that as a result in a later evaluation in the Plot, then I > get > the colors back: > > In[25]:= Table[k x, {k, 1, 5}] > > Out[25]= {x, 2 x, 3 x, 4 x, 5 x} > > In[26]:= Plot[%, {x, -1, 1}] > > What is going on here? Is it something like Plot does a special > scan of > its first argument before Evaluating it, and if it doesn't start > out as > a List, it concludes that it's all one thing and plots it with the > same > color, as opposed to an explicitly provided list of separate colors? > Something like that, some functions evaluate their arguments in a non- standard fashion, Plot being one of them. This is usually mentioned in the help on the function. In particular Plot has the attribute HoldAll which means its arguments are not evaluated before Plot is evaluated, you can override this with an explicit evaluate: Plot[Evaluate[Table[k x, {k, 1, 5}]], {x, -1, 1}] - Ssezi
- References:
- What's going on here (Table-generated lists)?
- From: Erik Max Francis <max@alcyone.com>
- What's going on here (Table-generated lists)?