Pablo Romero wrote:
> Eric,
>  
> I believe the problem is that my 19 levels are not evenly distributed; 
>  
> Lv=(1,3,5,6,7,8,9,10,12,14,16,18,20,25,30,35,40,50,75)

No, I don't think that has much to do with it, unless the problem is 
that the colors of some levels are too similar.

Again, please make a simple, complete, self-contained example, and we 
will go from there.

I think what you want may be something like this:

levs=[1,3,5,6,7,8,9,10,12,14,16,18,20,25,30,35,40,50,75]
norm = mpl.colors.BoundaryNorm(levs, 256)
z = rand(10,15)*14 # fake data covering only lower levs
contourf(z, levs, norm=norm, cmap=cm.jet, extend='both')
colorbar()


>  
> the first part of the range starts at 1,3,5, but then includes 6,7,8,9, and 
> then only goes with even numbers..10,12,14,16,18,20...then by 5 up until 35, 
> then jumps by 10...etc.
>  
> I know this seems strange, but this was done because Im plotting 'ocean wave 
> heights' and these were decided to be the 'heights of interest' for the 
> project Im working on.
>  

Perfectly reasonable.

> anyway, what I want is to be able to breakup the 'cm.jet' spectrum evenly 
> based on the # of levels (and not on their values), and spread my levels 
> evenly across the spectrum....
>  
> i.e., I want the first 6-7 levels to be evenly spread from blue to about 
> green acros cm.jet's spectrum, approx. the next 6 levels to be evenly spread 
> across cm.jet's yellow-orange part of the spectrum, and the last few levels 
> to be evenly spread across the reds...
>  
> Ideally, Id like to be able to use any colormap, and simply break up its 
> color spectrum evenly, and then assign each distinct color to each level in 
> my levels array. 
>  
> So, I guess I need a method to programatically, evenly break up cm.jet by the 
> # of levels, create a colors array & pass this array to 
> contourf(colors='mycolorsarray')...
>  
> does this make sense?
>  
> P.Romero
> 
> ----------------------------------------
>> Date: Sun, 15 Mar 2009 08:32:32 -1000
>> From: efir...@hawaii.edu
>> Subject: Re: [Matplotlib-users] question about levels & colormaps for 
>> contour functions
>> To: romero...@hotmail.com
>> CC: matplotlib-users@lists.sourceforge.net
>>
>> Pablo Romero wrote:
>>> Hi,
>>>
>>> I would like to know how I can pass an array of levels and also a colormap 
>>> to the contour() function and have the levels span the entire colormap. 
>>> example...
>>>
>>> if I do the following....
>>>
>>>
>>> Lv=(1,3,5,6,7,8,9,10,12,14,16,18,20,25,30,35,40,50,75)
>>>
>>> cs=plt.contourf(X,Y,waveheight,Lv,cmap=cm.jet,extend='both')
>>>
>>>
>>> I would expect that contours that are in the higher levels (i.e., levels 
>>> above value '14' in my levels array) would be plotted with lighter colors 
>>> in the cm.jet spectrum; the greens, yellows,oranges,reds, etc.
>>>
>>> However, contourf is simply breaking up the lower,"dark blue" half of the 
>>> cm.jet spectrum into small slices, and spreading all of my levels 
>>> throughout only the bottom half of cm.jet.
>>>
>> I don't see the problem yet. Here is an attempt to recreate what it
>> sounds like you are describing above (run in ipython -pylab):
>>
>> contourf(rand(10,12), arange(0,5.01,0.2), cmap=cm.jet, extend='both')
>> colorbar()
>>
>> The data are all blue because they are in the 0-1 range, while the
>> levels span the 0-5 range. The colorbar shows that the colormap is
>> covering the latter range, as it should.
>>
>> If you can make a simple self-contained example like this, and then
>> describe the difference between what it does and what you want it to do,
>> we can figure out how to get your desired result.
>>
>> Eric
>>
>>
>>
>>
>>
>>> I followed this tutorial:
>>> http://www.scipy.org/Cookbook/Matplotlib/ColormapTransformations
>>>
>>> that shows how to create a "discrete" colormap, but this also didnt work; 
>>> the contourf function again simply sliced up the lower, blue colors and 
>>> spread my all of my layers across the "blues" in my discrete colormap.
>>>
>>>
>>> If I use a colors array instead of a colormap, I can achieve what I want. 
>>> However, Id like to be able to use a colormap so that I dont have to 
>>> manually create color arrays everytime that I want to change my colorscheme.
>>>
>>> So, how can I force contour() to spread my levels across THE WHOLE spectrum 
>>> of a colormap?
>>>
>>> Please help,
>>>
>>> Thanks,
>>> P.Romero
>>>
>>>
>>> _________________________________________________________________
>>> Express your personality in color! Preview and select themes for HotmailĀ®.
>>> http://www.windowslive-hotmail.com/LearnMore/personalize.aspx?ocid=TXT_MSGTX_WL_HM_express_032009#colortheme
>>> ------------------------------------------------------------------------------
>>> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
>>> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
>>> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
>>> software that enables intelligent coding and step-through debugging.
>>> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> _________________________________________________________________
> Windows Liveā„¢ Contacts: Organize your contact list. 
> http://windowslive.com/connect/post/marcusatmicrosoft.spaces.live.com-Blog-cns!503D1D86EBB2B53C!2285.entry?ocid=TXT_TAGLM_WL_UGC_Contacts_032009



------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to