... and for dessert, is there a circular colormap that would work for  
the colorblind?

My department is practicing presenting-science-for-the-general-public,  
and the problems 'heat maps' have for the colorblind keep coming up.

handy: http://konigi.com/tools/submissions/color-deficit-simulators

&C


On Nov 8, 2009, at 3:34 AM, Gary Ruben wrote:

> Hi Ariel,
>
> You might find the attached function helpful here. Try creating a  
> new colormap using the example in the docstring (you could also try  
> setting high=0.8) - basically this will let you turn down the  
> saturation which will hopefully solve your problem. You may also  
> find the plot option useful to see what the individual colour  
> channels are doing if you decide to make a new colormap of your own  
> - you just need to ensure that the r, g, and b values match at both  
> ends.
>
> Gary
>
>
> Ariel Rokem wrote:
>> Hi everyone,
>> I am interested in using a circular colormap, in order to represent  
>> a phase variable, but I don't like 'hsv' (which is circular). In  
>> particular, I find that it induces perceptual distortion, where  
>> values in the green/yellow part of the colormap all look the same.  
>> Are there any circular colormaps except for 'hsv'? If not - how  
>> would you go about constructing a new circular colormap? Thanks,
>> Ariel
>> -- 
>> Ariel Rokem
>> Helen Wills Neuroscience Institute
>> University of California, Berkeley
>> http://argentum.ucbso.berkeley.edu/ariel
> import numpy as np
> import matplotlib.pyplot as plt
> import matplotlib.colors as colors
> import matplotlib._cm as _cm
>
>
> def rescale_cmap(cmap_name, low=0.0, high=1.0, plot=False):
>    '''
>    Example 1:
>    my_hsv = rescale_cmap('hsv', low = 0.3)     # equivalent scaling  
> to cplot_like(blah, l_bias=0.33, int_exponent=0.0)
>    Example 2:
>    my_hsv = rescale_cmap(cm.hsv, low = 0.3)
>    '''
>    if type(cmap_name) is str:
>        cmap = eval('_cm._%s_data' % cmap_name)
>    else:
>        cmap = eval('_cm._%s_data' % cmap_name.name)
>    LUTSIZE = plt.rcParams['image.lut']
>    r = np.array(cmap['red'])
>    g = np.array(cmap['green'])
>    b = np.array(cmap['blue'])
>    range = high - low
>    r[:,1:] = r[:,1:]*range+low
>    g[:,1:] = g[:,1:]*range+low
>    b[:,1:] = b[:,1:]*range+low
>    _my_data = {'red':   tuple(map(tuple,r)),
>                'green': tuple(map(tuple,g)),
>                'blue':  tuple(map(tuple,b))
>               }
>    my_cmap = colors.LinearSegmentedColormap('my_hsv', _my_data,  
> LUTSIZE)
>
>    if plot:
>        plt.figure()
>        plt.plot(r[:,0], r[:,1], 'r', g[:,0], g[:,1], 'g', b[:,0],  
> b[:,1], 'b', lw=3)
>        plt.axis(ymin=-0.2, ymax=1.2)
>
>    return my_cmap
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008  
> 30-Day
> trial. Simplify your report design, integration and deployment - and  
> focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  
> http://p.sf.net/sfu/bobj-july_______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to