Re: and color via PlotStyle
- To: mathgroup at smc.vnet.net
- Subject: [mg118564] Re: and color via PlotStyle
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Tue, 3 May 2011 05:45:15 -0400 (EDT)
> ... but nobody has (AFAIK) done the obvious, namely > stated the solution to the question: Just how does one get > differently-colored curves when using the '/.{a->1}'? On the contrary, I've answered that question on this thread, and so have several others. We've also answered it on a hundred other threads. But here it is again: Plot[{ a x, a x^2, a x^3} /. {a -> 1} // Evaluate, {x, 0, 2}, PlotStyle -> {Red, Green, Blue}] or this: list = { a x, a x^2, a x^3} /. {a -> 1}; Plot[list, {x, 0, 2}, PlotStyle -> {Red, Green, Blue}] Also, you can look up PlotStyle in Help, and gaze in wonder at THE VERY FIRST EXAMPLE. Plot[Evaluate@Table[BesselJ[n, x], {n, 3}], {x, 0, 15}] Now try it without Evaluate, and see what happens: Plot[Table[BesselJ[n, x], {n, 3}], {x, 0, 15}] Bobby On Mon, 02 May 2011 05:50:57 -0500, Dushan Mitrovich <dushanm at spinn.net> wrote: > Helen Read wrote: >> On 4/30/2011 5:51 AM, AES wrote: >> >>> 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 =AD=AD but has never had to encounter the concepts of Hold >>> or >>> Evaluate. >>> >>> After all, having a rudimentary understanding of Plot, PlotStyle, the >>> \=2E >>> syntax, and lists (which are all relatively simple, understandable, >>> learnable commands that do familiar things) permits this user to do >>> many >>> useful tasks =AD=AD 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? >>> >> Oh, please. Nobody needs to go through all that "before they could start >> plotting Lists using Plot". >> >> My beginning students plot lists all the time. Normally they do it by >> defining functions first, for whatever it is they are plotting. >> >> f[x_]:=x >> g[x_]:=x^2 >> h[x_]:=x^3 >> >> Plot[{f[x],g[x],h[x]},{x,0,2},PlotStyle -> {Red, Green, Blue}] >> >> (Although actually, most of them accept the default colors and rarely >> bother with PlotStyle. Either way, they will get a nice plot with each >> curve a different color.) >> Then they might go back and edit f[x], g[x], and h[x] to make them 2x, >> 2x^2, 2x^3, or what have you, and re-evaluate. A little later on (when >> not exactly a newbie anymore), they might try something along these >> lines, which also produces different colored curves. >> >> >> Manipulate[ >> Plot[{a x, a x^2, a x^3}, {x, -2, 2}, >> PlotStyle -> {Red, Green, Blue}, PlotRange -> {-10, 10}], {a, -5, >> 5, >> 1, Appearance -> "Labeled"}] >> >> >> I have *never* seen a beginner try to use anything remotely like >> { a x, a x^2, a x^3}/. {a -> 1} inside a Plot. But if they did, it >> would not bother anybody. They would either ask why it came out that >> way, or try a different way of doing it, or ignore it and move on. It's >> just not a big deal. >> >> But I don't even show them the /. notation until there is a real need >> for it. I teach them about defining functions from day one. >> >> -- >> Helen Read >> University of Vermont >> > > So far everybody has been talking about whether the behavior is > reasonable > or unreasonable to expect, but nobody has (AFAIK) done the obvious, > namely > stated the solution to the question: Just how does one get > differently-colored curves when using the '/.{a->1}'? > > I am a near-beginner, have run into the problem myself, and have been > reading > the thread hoping to learn the solution. No luck. > > - Dushan > > -- DrMajorBob at yahoo.com