[Matplotlib-users] redefining color keywords in stylesheets

Paul Hobson pmhobson at gmail.com
Wed Apr 6 11:37:06 EDT 2016


I believe that seaborn achieves this through its set_color_codes function:
https://github.com/mwaskom/seaborn/blob/10bdb18f47bb5fc0a30d34954ff6f174b4cf5881/seaborn/palettes.py#L900



On Wed, Apr 6, 2016 at 7:52 AM, Benjamin Root <ben.v.root at gmail.com> wrote:

> Pierre,
>
> We are working on a couple different features that would better address
> your problem. First, we are working on implementing a shorthand notation
> for properties that would reference elements in the property cycle. So,
> specifying `color='[0]'` and `linewidth='[0]'` would set those properties
> from the first element of the property cycle. There are some details that
> are still being worked out, though, and would likely land in version 2.1,
> but a preview/beta pared-down version might appear in v2.0.
>
> Another feature that has been discussed, but hasn't gotten very far is a
> "palette" concept. This would allow one to have multiple versions of that
> ColorConverter dictionary that would map the names to different rgb specs.
> I don't think this idea has gotten a pull request yet, and I would imagine
> that it shouldn't be too difficult to implement for those who might be
> interested in taking it on.
>
> Cheers!
> Ben Root
>
>
> On Wed, Apr 6, 2016 at 8:25 AM, Pierre Haessig <pierre.haessig at crans.org>
> wrote:
>
>> Hello,
>>
>>
>> I've a question about style sheets:
>>
>> *W**ould it be possible for stylesheets to redefine the colorkeywords
>> ('r','g','b'...) to match their color design ?*
>>
>> I believe this is not currently possible, is that right ?
>>
>> The only thing that comes close is the modification of the dict
>> matplotlib.colors.ColorConverter.colors as discussed here (
>> http://stackoverflow.com/a/19626339/2822346)
>>
>> The motivation for this would be to have a quick way to reuse colors from
>> the default color cycle. Indeed, the new Cycler objects are powerful, but a
>> bit heavy weight, especially for quick interactive usage. This is pseudo
>> code for the use case I've in mind:
>>
>> suplot(211)
>> plot(x, y1) # will be blue
>> plot(x, y2) # will be green
>>
>> subplot(212)
>> plot(x, y3, 'r') # y3 should stand out. will be red instead of blue
>>
>>
>> With the classic style, this approach gives a coherent result, but using
>> for example 'seaborn-deep', the default red 'r' is out of place. So to make
>> the short color keywords useful again, it would be nice if seeborn-deep
>> could redefine 'r' to be the one used in its color cycle (a nice dark
>> purple red #8172B2).
>>
>> for now, seeborn-deep defines the rcParams axes.prop_cycle'
>> cycler(u'color', [u'#4C72B0', u'#55A868', u'#C44E52', ...
>>
>> and with this proposition, it could be instead
>>  cycler(u'color', [u'b', u'g', u'r'.... like for classic style (at least
>> for  the first 3 colors, not sure for the following colors)
>> but with extra entries in rcParams to define what b, g, r, ... should
>> mean.
>>
>>
>> (Also, I apologize in advance if this kind of proposition has been
>> discussed already on the mailing list or on github. I understand there was
>> much discussion on the topic of style change and I was not much following
>> the discussion these last months.)
>>
>>
>> best,
>> Pierre
>>
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users at python.org
>> https://mail.python.org/mailman/listinfo/matplotlib-users
>>
>>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20160406/d0a15be3/attachment-0001.html>


More information about the Matplotlib-users mailing list