Possible to change MPL color scheme?

Have you ever been in a talk where someone uses 100% green on a slide? The result is usually that no one can see what is shown unless it is a really large green area.

No, but I would have expected in that case appropriate bg. I've seen a
talk by MPL developer that he dislikes systems that help too much,
like I want it to do what I tell it to do :wink:
Like cyan is not teal, and yellow is not 75% yellow etc.

I really would have expected that MPL uses some nifty CMYK scheme (as
in CorelDraw approxiamtion i.e.) instead the one usually defined as in
html color names: http://www.w3schools.com/html/html_colornames.asp
which are commonly used (gnuplot i.e.), but MPL doesn't even use that

Can this colors be defined (i.e. in matplotlibrc) w/o changing MPL source?

路路路

On Sat, Jul 21, 2012 at 7:37 PM, Felix Patzelt wrote:

My guess is that this happens because rod cells which are the most light sensitive ones have very similar wavelength responsiveness to the cone cells (the ones for color vision) which react to green light. Hence, you just don't have as much contrast for green text on a white background as you have for example for blue text. Also, green on black is much easier to read than blue or red on black by the same argument.

You want this?

路路路

----

import matplotlib as mpl
mpl.rcParams['axes.color_cycle'] = ['#0000FF', '#00FF00', '#FF0000', '#00FFFF', 'FF00FF', 'FFFF00', '000000']

# test it
from pylab import *
import matplotlib.cm as cm

x = linspace(0, 2*pi, num=100, endpoint=True)

for i in range(1, 10):
    plot(x, sin(x + pi*i/10.0))

show()

----

I still think, that this is not a sensible default choice. Btw you can also easily generate your color scheme from colormaps:

mpl.rcParams['axes.color_cycle'] = [cm.winter(i/10.) for i in range(10)].

There also was an example in the Mailing list for how to do this on a per-plot-basis: Plot lots of graphs with different colours 路 GitHub

Am 21.07.2012 um 21:00 schrieb klo uo:

On Sat, Jul 21, 2012 at 7:37 PM, Felix Patzelt wrote:

Have you ever been in a talk where someone uses 100% green on a slide? The result is usually that no one can see what is shown unless it is a really large green area.

No, but I would have expected in that case appropriate bg. I've seen a
talk by MPL developer that he dislikes systems that help too much,
like I want it to do what I tell it to do :wink:
Like cyan is not teal, and yellow is not 75% yellow etc.

I really would have expected that MPL uses some nifty CMYK scheme (as
in CorelDraw approxiamtion i.e.) instead the one usually defined as in
html color names: http://www.w3schools.com/html/html_colornames.asp
which are commonly used (gnuplot i.e.), but MPL doesn't even use that

Can this colors be defined (i.e. in matplotlibrc) w/o changing MPL source?

My guess is that this happens because rod cells which are the most light sensitive ones have very similar wavelength responsiveness to the cone cells (the ones for color vision) which react to green light. Hence, you just don't have as much contrast for green text on a white background as you have for example for blue text. Also, green on black is much easier to read than blue or red on black by the same argument.

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

Ah all right, thanks for the tips :slight_smile:
I somehow missed that setting while browsing matplotlibrc

Cheers

路路路

On Sat, Jul 21, 2012 at 9:33 PM, Felix Patzelt wrote:

You want this?

----

import matplotlib as mpl
mpl.rcParams['axes.color_cycle'] = ['#0000FF', '#00FF00', '#FF0000', '#00FFFF', 'FF00FF', 'FFFF00', '000000']

# test it
from pylab import *
import matplotlib.cm as cm

x = linspace(0, 2*pi, num=100, endpoint=True)

for i in range(1, 10):
    plot(x, sin(x + pi*i/10.0))

show()

----

I still think, that this is not a sensible default choice. Btw you can also easily generate your color scheme from colormaps:

mpl.rcParams['axes.color_cycle'] = [cm.winter(i/10.) for i in range(10)].

There also was an example in the Mailing list for how to do this on a per-plot-basis: Plot lots of graphs with different colours 路 GitHub