Laurent Dufrechou wrote:
> Hello,
> 
>  
> 
> I would like to have a cluttering functionality to colorbar.
> 
> http://en.wikipedia.org/wiki/Clutter_(radar)
> 
>  
> 
> Before writing it, I would like to know if there is a way to doing it 
> with matplotlib.
> 
> What I mean by cluttering is:
> 
>  
> 
> You’ve got a colormap associated with a graphic where value goes from 0 
> to 255 for example.
> 
> Assigning a classical colormap (for example cm.jet) 0 value will be blue 
> and 255 one will be red.
> 
> What I need is a low  clutter and max clutter, if I set low clutter to 
> 10 and ax cluter to 250 then:
> 
> Blue will be for value from 0 to 10
> 
> Then the colormap do his job from 10 to 250 and finally
> 
>  From 250 to 255 colr will be set to max one = red.
> 
>  
> 
> Is it ever done in matplotlib, if not what could be the strategy here…?
> 
> I was thinking of set_over/set_under but seems not be exactly what I 
> need because I want to recreate the colormap from 10 to 250 with N segments.
> 
> (moreover I don’t understand how you set the over/under value…)

If you don't really care how many colors are in the map, then for your 
0-255 example, try this:

import numpy as np
import matplotlib.pyplot as plt
fakedata = np.random.rand(10,20) * 255.0
cmap = plt.cm.jet
norm = plt.Normalize(vmin=100, vmax=150)
plt.imshow(fakedata, cmap=cmap, norm=norm, interpolation="nearest")
plt.colorbar(extend="both")
plt.show()

I made the colored range small to emphasize what you call the 
"cluttering" effect.

We are taking advantage of the default, which is that the over and under 
values are the top and bottom ends of the colormap.  If you want other 
colors for the ends, then after defining your cmap, use, e.g.:

cmap.set_under('w')
cmap.set_over('k')

If you want to use a smaller number of colors in your colormap, then you 
need to make the colormap this way, for example:

from matplotlib.colors import LinearSegmentedColormap
from matplotlib._cm import _jet_data
cmap = LinearSegmentedColormap("yourname", _jet_data, N=10)

(I should add a helper function to make this more obvious and 
straightforward.)

Eric


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to