Re: What's going on here (Table-generated lists)?
- To: mathgroup at smc.vnet.net
- Subject: [mg97981] Re: What's going on here (Table-generated lists)?
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Fri, 27 Mar 2009 05:34:14 -0500 (EST)
- References: <gqfl2e$ksp$1@smc.vnet.net>
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? Yes, and I think that is even documented and not so special at all: As many other functions Plot has the attribute HoldAll. Use this to get a different color for each expression: Plot[Evaluate[Table[k x, {k, 1, 5}]], {x, -1, 1}] To understand what is going on I recommend to read the following tutorial in the documentation: tutorial/NonStandardEvaluation hth, albert