MathGroup Archive 2010

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

Search the Archive

Re: Pass argument name to plot label

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107815] [mg107815] Re: Pass argument name to plot label
  • From: Adam <juneappal at gmail.com>
  • Date: Sat, 27 Feb 2010 03:13:43 -0500 (EST)
  • References: <hm82um$19l$1@smc.vnet.net>

Thanks to the several people who wrote with suggestions.  The
cleanest, easiest one that does what I want was sent to me by BH:

***METHOD 1:
SetAttributes[hplot, HoldFirst]
hplot[list_] := Histogram[list, PlotLabel -> Row[{HoldForm[list],
", mean = ", Mean[list]}]]

things = {1, 2, 3};
hplot[things]
***
That does it, with minimal extra coding.


Method 2 comes from DT.  I don't understanding scope well enough to
understand why this might be a better approach.  It does accomplish
what I am after, but with a little more overhead:
****METHOD 2
In[13]:=
Attributes[hplot]=HoldFirst;
hplot[list_]:=Module[{name}, name=StringTake[ToString[Hold[list]],
{6,-2}];
                             Histogram[Evaluate[list],PlotLabel-
>Row[{name<>", mean =",Mean[Evaluate[list]]}]]];

mylist={1,2,3,1};
hplot[mylist]
****


A third writer, suggested this:
*******Method 3
hplot[list_] := Histogram[list,
PlotLabel -> Row[{Row[list], ", mean = ", Mean[list]}]]

things = {1 , 2, 3};
hplot[things]
***

This is appealing because it is even briefer than the first
suggestion, but it doesn't do what I am after.  It give me as a plot
label:
-      123, mean = 2

Instead of the desired
 -     things, mean =2

Perhaps it needs only a slight tweak to work, or something is
different in our preference files.


Thanks again to all three people who sent approaches.

-Adam
On Feb 26, 1:06 am, Adam <juneap... at gmail.com> wrote:
> I have 15 lists with semi-descriptive names.  I want to make a
> function that builds a plot (histogram, actually) that has the
> particular list name as a label.
>
> Something like this:
>
> hplot[list_] :=
>  Histogram[list,   PlotLabel -> Row[{list, ", mean = ", Mean[list]}=
]]
>
> When I run it, like so:
> things = {1 , 2, 3};
> hplot[things]
>
> I want the Plot Label to be displayed as:
> "things, mean = 2"
>
> Is this possible?  I have tried SymbolName[things], HoldForm[things],
> ut either way, my plot label displays as:
> {1, 2, 3} , mean = 2


  • Prev by Date: Re: Re: Transition to Wolfram Workbench
  • Next by Date: Re: Re: Problems with ChoiceDialog inside a Dynamic: Bug or not (well)
  • Previous by thread: Re: Pass argument name to plot label
  • Next by thread: Size and Location of Opening Window