MathGroup Archive 2007

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

Search the Archive

RE: Using legend with FilledPlot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg74433] RE: [mg74393] Using legend with FilledPlot
  • From: "David Annetts" <davidannetts at aapt.net.au>
  • Date: Wed, 21 Mar 2007 02:49:39 -0500 (EST)
  • References: <200703200305.WAA14968@smc.vnet.net>

Hi Michelasso 

> Ok, I have tried to answer to myself to the previous 
> questions I made, and I have almost managed to get what I 
> want, except for one thing: I cannot put legend into grpahics 
> I draw with FilledPlot funtion.
> For example this works:
> Plot[{Sin[x], Cos[x]}, {x, -3, 3}, PlotStyle -> {Hue[0.4], Hue[0.6]},
>   PlotLegend -> {"a", "b"}, LegendTextSpace -> 10,
>   LegendShadow -> None, LegendPosition -> {0.2, -0.3},
>   LegendSize -> {0.9, 0.2}]
> 
> but if I replace Plot with FilledPlot I don't have anymore a legend.
> Is there any way to obtain a legend with FilledPlot?

Yes there is, but you'll have to work a bit harder and construct your own.
It's tedious, but straightforward.

First, you'll need to construct the lines that will go into your legend.

	lin = {{Blue, Line[{{-1, 0}, {0, 0}}]}, {Green, Line[{{-1, 0}, {0,
0}}]}};
	lin = Graphics[#] & /@ lin;

Next, make the legend

	lgd = {Transpose[{lin, {"a", "b"}}], 
      	LegendTextSpace -> 10,
	      LegendShadow -> None, 
	      LegendPosition -> {0.2, -0.3},
	      LegendSize -> {0.9, 0.2}
	      };

Finally, put it all together.

	FilledPlot[{Sin[x], Cos[x]}, {x, -3, 3}, 
	    PlotStyle ->  {Blue, Green},
	    FrameTicks -> {PiScale, Automatic, None, None},
	    DisplayFunction -> Identity];
	
	ShowLegend[%, lgd];

Tedious, as I said, but straightforward.

There is a school of thought that says you're better off not using legends
since they detract from the information.  For more, see any of the books by
Tufte.

Regards,

Dave.


  • Prev by Date: Definite Integration in Mathematica
  • Next by Date: Re: simple sequence problem
  • Previous by thread: Using legend with FilledPlot
  • Next by thread: Re: Using legend with FilledPlot