RE: Follow-Up Question to
- To: mathgroup at smc.vnet.net
- Subject: [mg20202] RE: [mg20187] Follow-Up Question to [mg20090]
- From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
- Date: Wed, 6 Oct 1999 21:06:24 -0400
- Sender: owner-wri-mathgroup at wolfram.com
A. Hanszen wrote: --------------------- Adam Smith rose the question, why nodisp in nodisp = DisplayFunction -> Identity graph1 = Plot[Sin[2 Pi x],{x,0,2},nodisp] does not work. From the answers in this group, we learned, that one either has to wrap nodisp into Evaluate graph1 = Plot[Sin[2 Pi x],{x,0,2},Evaluate[nodisp]] or use Block to temporarily deviate DisplayFunction to Identity and use Show outside the Block-construct to display the combined graphs or use one or the other package to combine different graphs. Plot has the Attribute HoldAll. However, if one changes this to HoldFirst (which might have other unwanted side effects), Evaluate around nodisp is still necessary. Can anybody in this group explain, why? It is just a matter of better understanding Hold and so on, rather than a question of combining graphics objects. ------------------------- REPLY: Below Plot makes the graphic of a Sine wave even though t=3.5. In[1]:= t=3.5; In[2]:= Plot[Sin[t],{t,0,4Pi}]; (* Graphic not shown. *) ----------------------------- Next I change the attributes as you suggest. In[3]:= ClearAttributes[Plot,HoldAll]; SetAttributes[Plot,HoldFirst]; Now we the line below doesn't work. In[5]:= Plot[Sin[t],{t,0,4 Pi}]; Plot::itraw: Raw object 3.5` cannot be used as an iterator. In this case Plot[Sin[t],{t,0,4 Pi}] evaluated to Plot[Sin[t],{3.5,0, 4 Pi}] which is an invalid input. -------------------- Now try my (PlotFunctions.m) package available from http://www.mathsource.com/cgi-bin/msitem?0209-876 . With this package you never need to use Evaluate inside Plot, and I can pretty much say it doesn't degrade Plot in any way! -------------------- Regards, Ted Ersek For Mathematica tips, tricks see http://www.dot.net.au/~elisha/ersek/Tricks.html