On Tue, Mar 24, 2009 at 9:27 AM, Jason Grout <jason-s...@creativetrax.com> wrote: > > Jose Guzman wrote: >> kcrisman wrote: >>> >>>> In looking at your code, I had an idea about specifying colors. Why >>>> don't we have some default color objects defined in Sage, like red, >>>> blue, yellow, green, etc. Methods could include .darker(), .lighter(), >>>> etc. So you could specify a plot as: >>>> >>>> plot(x^2, (x,0,1), color=red) >>>> plot(x^3, (x,0,1), color=blue.darker()) >>>> plot(x^4, (x,0,1), color=green.lighter()) >>>> plot(x^5, (x,0,1), color=red+blue) #gives purple :) >>>> >>>> and then for the more esoteric names (all of the standard web colors, >>>> all of the standard x11 colors, etc.), use the color namespace. >>>> >>>> plot(sin(x), (x,0,1), color=color.goldenrod) >>>> >>> This sounds great; presumably it wouldn't be too hard to do, if very >>> annoying (particularly because some of the plot methods only allow >>> rgbcolor, others allow cmap options, etc.) - though what if I want red >>> to stand for some other Python/Sage object? And of course only >>> English colors would be there, and what about gray/grey ... >>> >>> By the way, other readers of this thread please note: >>> >>> sage: plot(x^2, (x,0,1), color='red') >>> >>> works fine! >>> >>> - kcrisman >>> >> I particularly like the rgbcolor notation. That's the only way I found >> to have vector graphic environment (i.e inkscape) to match with >> matplotlib or sage . On the other hand I usually use some kind of ... >> >> plot (x**2, (0,1), rgbcolor=(0.5,0.5,0) ) # dark green >> >> because I found the default green color (rgbcolor=(0,1,0)) looks too >> brilliant with some beamers when you give a talk. Anyway, I tried with >> rgbcolor='blue' ,'red','green','yellow','black','orange' and worked fine. > > > Yes, I'm saying that in addition to being able to pass a tuple or > string, we'd be able to pass a sage color object.
That's a great idea, which is why I implemented it over a year ago :-) sage: C = Color('red') # a Sage color object sage: C RGB color (1.0, 0.0, 0.0) sage: C.html_color() '#ff0000' sage: plot(x^2, (x,0,1), color=C) I think the only strings allowed in the Color constructor are: "red" : (1.0,0.0,0.0), "orange": (1.0,.5,0.0), "yellow": (1.0,1.0,0.0), "green" : (0.0,1.0,0.0), "blue" : (0.0,0.0,1.0), "purple": (.5,0.0,1.0), "white" : (1.0,1.0,1.0), "black" : (0.0,0.0,0.0), "grey" : (.5,.5,.5) You can also use any html color strings. To give the functionality you want, you could add methods "lighter()" and "darker()" to the existing color object. William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---