MathGroup Archive 2011

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

Search the Archive

Re: PlotLegend and Show

  • To: mathgroup at smc.vnet.net
  • Subject: [mg117950] Re: PlotLegend and Show
  • From: David Annetts <david.annetts at iinet.net.au>
  • Date: Tue, 5 Apr 2011 06:44:40 -0400 (EDT)

Hi Robert,

My advice with this package would be to ignore it.

IMHO, you're better off constructing a legend by hand using Epilog.  An 
example is given below.

(* construct plot styles, then 10 Sin curves which we'll plot as one *)
pcol = Hue[#] & /@ (1/11. Range[10]);
psty = Directive[Thick, #] & /@ pcol;
p = Plot[1/# Sin[# x], {x, 0, 2 \[Pi]},
      PlotStyle -> psty[[#]],
      FrameTicks -> {{Automatic, None}, {{0, \[Pi], 2 \[Pi]}, None}},
      PlotRange -> {Automatic, {-1.1, 1.1}}] & /@ Range[1, 10];
Show[p]

(* this is essentially what you want, but without a legend.  Let's 
define one programatically *)
ltxt = Text[
      Style[ToString[#], Smaller, Background->White,
       FontColor -> pcol[[#]]], {1.925 \[Pi], 1 - .1 #}, {-1, 0}] & /@ 
Range@Length@pcol;
ltxt = Join[ltxt,    {Text["\[Times] \[Pi]", {1.9 \[Pi], 1}, {-1, 0}]}];

(* we use it thusly *)
Show[p, Epilog -> {ltxt}]

YMMV.

D.

On 4/04/2011 18:30, Robert McHugh wrote:
> Have made a plot which uses PlotLegend.  Would like to combine this plot
> with another plot.  Tried using Show[] to do this, but the results were not
> not what I expected.  In the combined plot, the second plot doesn't have the
> same scale as the first plot. When I remove the PlotLegend option from the
> first plot and use show to combine the two plots all is well.  Below is an
> example. (Though in the case I would like to run, there are about 10
> different graphs in the first plot, so making the legend by hand would be
> time consuming.)
>
> Recommendations? Thanks.
>
> (* this isn't what I want *)
> p1 = Plot[{Sin[x], Cos[x]}, {x, 0, 2 Pi},  PlotLegend ->  {"sine", "cosine"}]
> p2 = Plot[{Sin[x + \[Pi]], Cos[x + \[Pi]]}, {x, 0, 2 Pi}]
> Show[p1, p2]
>
> (* remove the legend and all is well *)
> p1 = Plot[{Sin[x], Cos[x]}, {x, 0, 2 Pi} ]
> p2 = Plot[{Sin[x + \[Pi]], Cos[x + \[Pi]]}, {x, 0, 2 Pi}]
> Show[p1, p2]


  • Prev by Date: Re: Mathematica 8.01 and the CDF plug-in
  • Next by Date: Re: PlotLegend and Show
  • Previous by thread: Re: PlotLegend and Show
  • Next by thread: Re: PlotLegend and Show