Re: Getting Color *names* as strings?
- To: mathgroup at smc.vnet.net
- Subject: [mg67493] Re: Getting Color *names* as strings?
- From: bghiggins at ucdavis.edu
- Date: Wed, 28 Jun 2006 03:52:01 -0400 (EDT)
- References: <e7qmpk$6ne$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Here is one way,
<< Graphics`Colors`
Now generate a list of all the colors (as a string) and their RGBColor:
allColrs = Map[{#, ToColor[ToExpression[#], RGBColor]} &, AllColors];
Thus
In[98]:=allColrs[[4]]
Out[98]=
{"Apricot", RGBColor[1., 0.340007, 0.129994]}
Now use Cases to get the corresponding string value from the RGBColor
value in the list greens
greens={CinnabarGreen, ChromeOxideGreen, CobaltGreen};
colrs=Flatten[Map[Cases[allColrs, {x_String,#}->x]&,greens]];
Do[ Plot[ Sin[x], {x, 0, 2p}, PlotStyle -> greens[[k]],
PlotLabel -> colrs[[k]] ] ,
{k, 1, Length[greens]} ];
Hope this helps,
Cheers,
Brian
AES wrote:
> Trying out different named Colors in a plot by using
>
> greens={CinnabarGreen, ChromeOxideGreen, CobaltGreen, etc};
>
> Do[ Plot[ func, range, PlotStyle -> greens[[k]],
> PlotLabel -> ToString[greens[[k]]] ] ,
> {k, 1, Length[greens]} ];
>
> Works fine -- except the PlotLabel comes out as "RGB[num, num, num]" --
> and using SymbolName[greens[[1]]] or even SymbolName[CinnabarGreen] does
> _not_ give the string "CinnabarGreen".
>
> How can I get the *name* of each color as a string to put in PlotLabel
> or in a Text label?
>
> (Trivial problem, I agree, but just frustrating enough to be interesting)