MathGroup Archive 2011

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

Search the Archive

Re: Workaround for Plot[ ] and color via PlotStyle

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118466] Re: Workaround for Plot[ ] and color via PlotStyle
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Fri, 29 Apr 2011 07:30:34 -0400 (EDT)

This is a FAQ. As stated in the More Information for Plot: 

- Plot has attribute HoldAll, and evaluates f only after assigning specific numerical values to x.

- In some cases it may be more efficient to use Evaluate to evaluate f symbolically before specific numerical values are assigned to x.

Attributes[Plot]

{HoldAll, Protected}

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

You can also factor the a out

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


Show[Table[Plot[y = x^k, {x, -5, 5},
   PlotStyle -> {Thick, Hue[0.5 (k - 1)/3]}],
  {k, 1, 3}],
 PlotRange -> {-10, 10}]

Using a single Plot

Plot[Evaluate[x^Range[3]], {x, -5, 5},
 PlotStyle -> ({Thick, #} & /@ {Red, Yellow, Green}),
 PlotRange -> {-10, 10}]


Bob Hanlon

---- "Christopher O. Young" <cy56 at comcast.net> wrote: 

=============
As a previous poster showed, Plot is a little inconsistent when it comes to
mapping colors via PlotStyle.

Plot[
 {
  a x /. {a -> 1},
  a x^2 /. {a -> 1},
  a x^3 /. {a -> 1}
  },
 

{x, 0, 2},
 
 PlotStyle -> {Red, Green, Blue}
 ]


   works OK but

Plot[
 {
   a x,
   a x^2,
   a x^3
   } /. {a -> 1},
 
 {x, 0, 2},
 

PlotStyle -> {Red, Green, Blue}
 ]


  just produces blue plots.

So I tried to figure out to work from the fully written-out form:

Show[
 Plot[y = x, {x, -5, 5}, PlotStyle -> {Thick, Red}],
 Plot[y = x^2, {x, -5, 5}, PlotStyle -> {Thick, Yellow}],
 Plot[y = x^3, {x, -5, 5}, PlotStyle -> {Thick, Blue}]
 ]


The above works fine, but is very redundant.

A Table will streamline the above commands:

Show[
 Table[
  Plot[
   y = x^k, {x, -5, 5},
   PlotStyle -> {Thick, Hue[0.5 (k - 1)/3]}
   ],
  {k, 1, 3}]
 ]


Does anybody know how to go through a list of colors via the k index?

At any rate, if you're a big fan of postfix notation, the following can be
rewritten in stages, as:

Table[
  Plot[
   y = x^k, {x, -5, 5},
   PlotStyle -> {Thick, Hue[0.5 (k - 1)/3]}
   ],
  {k, 1, 3}
  ] // Show




Plot[
   y = x^k, {x, -5, 5},
   PlotStyle -> {Thick, Hue[0.5 (k - 1)/3]}
   ]~Table~{k, 1, 3}\
    // Show



And, finally:

(y = x^k //
      Plot[
        #, {x, -5, 5},
        PlotStyle -> {Thick, Hue[0.5 (k - 1)/3]}
        ] &)\
   ~Table~{k, 1, 3}\
    // Show



  • Prev by Date: Re: Limit[f[x], x->a] vs. f[a]. When are they equal?
  • Next by Date: Re: Output Precision Exploration
  • Previous by thread: Re: Workaround for Plot[ ] and color via PlotStyle
  • Next by thread: How to create such a list