MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: and color via PlotStyle

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118501] Re: and color via PlotStyle
  • From: AES <siegman at stanford.edu>
  • Date: Sat, 30 Apr 2011 05:51:12 -0400 (EDT)
  • References: <ipe7mj$r1o$1@smc.vnet.net>

In article <ipe7mj$r1o$1 at smc.vnet.net>,
 Bill Rowe <readnews at sbcglobal.net> wrote:

> 
> >Plot[{ a x, a x^2, a x^3}/. {a -> 1},{x, 0, 2},
> >PlotStyle -> {Red, Green, Blue}]
> 
> >just produces blue plots.
> 
> Exactly as it should.

The statement "Exactly as it _should_" is open to discussion here.

Consider an "ordinary user" (a user attempting to use Mathematica to do 
some simple but useful task) who is at a level of sophistication where 
he/she understands the Plot command; how to use it to plot a List of 
functions {f1,f2,f3}; the use of simple PlotStyles; and the use of the 
"\." syntax ­­ but has never had to encounter the concepts of Hold or 
Evaluate.  

After all, having a rudimentary understanding of Plot, PlotStyle, the \. 
syntax, and lists (which are all relatively simple, understandable, 
learnable commands that do familiar things) permits this user to do many 
useful tasks ­­ and to do themwithout ever having any interaction with 
the much more complex and arcane (and much less standard or familiar in 
ordinary life) concepts of Hold and Evaluate.

This mythical user might then well be forgiven for thinking that the two 
commands

   a = 1;
   Plot[{ a x, a x^2, a x^3}, {x, 0, 2},
   PlotStyle -> {Red, Green, Blue}]

   Plot[{ a x, a x^2, a x^3}/. {a -> 1}, {x, 0, 2},
   PlotStyle -> {Red, Green, Blue}]

_should_ do exactly the same thing, except that the first form will also 
obviously leave a assigned the value 1 in subsequent cells.

But of course, this is not what happens, and so the user who uses the 
second form (perhaps doing so for compactness, or perhaps wanting to 
make a test Plot of their List without setting a to a fixed value) 
encounters another of the copious supply of puzzling Mathematica 
"gotchas".

I'm not arguing that this outcome is in some sense "wrong", or in any 
way a bug.  There may be -- probably are -- deep reasons, buried deep in 
the logic and design of Mathematica, as to why Plot has to function in 
this way (or maybe an unnecessary design decision was made that Plot 
would function in this way to simplify other aspects of Mathematica 
programming?).

But it's still unfortunate that it does operate this way.  Would you 
(and maybe Helen ??? in Washington) really want to argue that high 
school students, or freshman students in college, should have to first 
go through a tutorial in Hold and Evaluate (and maybe also HoldAll, 
HoldFirst, NHoldAll, HoldAllComplete, HoldRest, SequenceHold, Extract, 
and Unevaluated) before they could start plotting Lists using Plot?


  • Prev by Date: Re: Solve / Reduce isolating results.
  • Next by Date: Re: Bug in ListContourPlot?
  • Previous by thread: Re: and color via PlotStyle
  • Next by thread: How to compute a recurrence in 2D using mathematica?