Re: Applying Apply
- To: mathgroup at smc.vnet.net
- Subject: [mg107801] Re: [mg107782] Applying Apply
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 26 Feb 2010 04:07:52 -0500 (EST)
- Reply-to: hanlonr at cox.net
plabel = {
Text["Orange", {10, 44}],
Text["Blue", {10, 50}, {1, 1}],
Text["Green", {2, 99}],
Text["Red", {2, 20}]};
textColours = {Orange, Blue, Green, Red};
First method
Graphics[Style @@@ Thread[{plabel, textColours}]]
Second method
Graphics[Thread[{plabel, textColours}] /.
{Text[str_String, r__], clr_} ->
Text[Style[str, clr], r]]
Bob Hanlon
---- Chris Degnen <degnen at cwgsy.net> wrote:
=============
Can anyone suggest an elegant way to apply a function - in this case a
Style - to elements in a list.
In the example below I'm applying colours to their names. (I don't
know how Text is being used so I aimed to preserve the original
structure). As you can see it took me two lines to splice in the
colour styles. I thought I should have been able to do it in one, but
couldn't figure out how.
plabel = {Text["Orange", {10, 44}], Text["Blue", {10, 50}],
Text["Green", {2, 99}], Text["Red", {2, 20}]};
textColours = {Orange, Blue, Green, Red};
plabel2 =
Append[Transpose[Apply[{#1, #2} &, plabel, 1]], textColours];
plabel = Apply[Text[Style[#1, #3], #2] &, Transpose[plabel2], 1]