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)