De Pauw Antoine wrote:
> Hi Jeff,
>
> I finally found out how to fill my figure with a background color using
> axes.set_axis_bgcolor(color), but I'm facing the following problem now:
>
> How could I get the lower color of a colormap? This is quite undocumented
> and I don’t know the colormap properties I could use for that
>
> I know there must be an accessible value somewhere, like for the
> ax.get_yticklabels() you gave me
>
> If someone had the clue, my problems would then be completely solved
>
> Antoine De Pauw
> Collaborateur de recherches, Informatique - Research collaborator, IT
> Laboratoire de chimie quantique et photophysique - Quantum chemistry and
> photophysics laboratory
> Université Libre de Bruxelles - ULB
>   

Antoine: To get the RGBA value associated with a particular data value, 
just call the colormap as a function as pass it that value. For example

 >>> import matplotlib.pyplot as plt
 >>> plt.cm.jet(1)
(0.0, 0.0, 0.517825311942959, 1.0)

BTW: the 'fill_color' kwarg of drawmapboundary basemap method allows you 
to set the background color of the map.

http://matplotlib.sourceforge.net/basemap/doc/html/api/basemap_api.html

It fills only the map region (which for some projections, like the 
orthographic, is not the same as the axes region).


-Jeff
>
> -----Original Message-----
> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
> Sent: mardi 23 septembre 2008 20:38
> To: De Pauw Antoine
> Cc: 'John Hunter'; 'Matplotlib Users'
> Subject: Re: [Matplotlib-users] Information request
>
> De Pauw Antoine wrote:
>   
>> Jeff,
>>
>> I still don't know how to either remove this artifact or fill my arrays
>>     
> with
>   
>> values to remove empty regions, and I'll make a last attempt to resolve it
>>
>> I uploaded a data file here: http://scqp.ulb.ac.be/20080821.b56
>>
>> The actual code snippet is here:
>> http://snipplr.com/view/8307/map-plotting-python-code-temporary/
>>
>> I hope you'll be able to reproduce it, I set the cmap to winter for you to
>> see the gap... setting it to hot will make the grayish border visible in
>> high resolution by zooming it... I think the border (not the empty zone)
>> could be an artifact with the hot colormap
>>
>>
>> Antoine De Pauw
>> Collaborateur de recherches, Informatique - Research collaborator, IT
>> Laboratoire de chimie quantique et photophysique - Quantum chemistry and
>> photophysics laboratory
>> Université Libre de Bruxelles - ULB
>>
>>   
>>     
>
> Antoine:  Here is a version that just plots the pixels directly, without 
> interpolating to a grid.  I personally like this better, since you can 
> easily see where you actually have data.
>
> HTH,
>
> -Jeff
>
> from mpl_toolkits.basemap import Basemap
> import matplotlib.pyplot as plt
> import matplotlib.mlab as mlab
> import numpy as np
> import os
> fileName = '20080821.b56'
> titre='SO2'
> legende='Delta Brightness Temperature (K)'
> nbreligne=long(os.stat(fileName)[6])/(8*int(fileName[-2:]))
> rawfile=np.fromfile(open(fileName,'rb'),'<d',-1)
> Lat=rawfile[0:nbreligne]
> Lon=rawfile[nbreligne:nbreligne*2]
> Val=rawfile[nbreligne*21:nbreligne*22]
> map=Basemap(projection='mill',llcrnrlat=-90,urcrnrlat=90,\
>             urcrnrlon=180,llcrnrlon=-180,resolution='l')
> x, y = map(Lon, Lat)
> plt.scatter(x,y,s=25,c=Val,marker='s',edgecolor="None",cmap=plt.cm.winter,vm
> in=-5,vmax=-1.2, 
> alpha=0.5)
> cb=plt.colorbar(shrink=0.6)
> cb.ax.set_ylabel(legende,fontsize=11)
> for t in cb.ax.get_yticklabels():
>     t.set_fontsize(7)
> meridians = np.arange(-180,180,60)
> parallels = np.arange(-90,90,30)
> map.drawparallels(parallels,labels=[1,0,0,0],fontsize=7,linewidth=0.25)
> map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=7,linewidth=0.25)
> map.drawcoastlines(0.25,antialiased=1)
> plt.title(titre)
> plt.show()
>   
>> -----Original Message-----
>> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
>> Sent: lundi 22 septembre 2008 13:59
>> To: De Pauw Antoine
>> Cc: 'John Hunter'; 'Matplotlib Users'
>> Subject: Re: [Matplotlib-users] Information request
>>
>> De Pauw Antoine wrote:
>>   
>>     
>>> Jeff,
>>>
>>> I included here a figure where you'll see the border problem for imshow
>>>       
> in
>   
>>> my case
>>>
>>> http://img217.imageshack.us/img217/5240/testfigzp3.png
>>>
>>> The border wraps at -180 and 180 to form the white line
>>>
>>> PS: it is atmospheric ice and not SO2, I just omitted to change the title
>>>     
>>>       
>> ^^
>>   
>>     
>>> Antoine De Pauw
>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry and
>>> photophysics laboratory
>>> Université Libre de Bruxelles - ULB
>>>   
>>>     
>>>       
>> Antoine:  I hate to keep repeating myself - but we can't do much if you 
>> don't provide a self-contained script, that I can run, which reproduces 
>> the problem.  My guess is that the line along the dateline, and the 
>> point at the South Pole are missing values (which griddata set to 
>> missing because they are outside the extent of the data) - but that's 
>> just a guess until I can reproduce it.
>>
>> -Jeff
>>   
>>     
>>> -----Original Message-----
>>> From: Antoine De Pauw [mailto:[EMAIL PROTECTED] 
>>> Sent: jeudi 18 septembre 2008 17:23
>>> To: Jeff Whitaker; [EMAIL PROTECTED]
>>> Cc: 'John Hunter'; 'Matplotlib Users'
>>> Subject: re:Re: [Matplotlib-users] Information request
>>>
>>> Jeff,
>>>
>>> No the example doesn't show that line
>>>
>>> If I reduce the amount of data, the border will be on every side of the
>>>     
>>>       
>> plot
>>   
>>     
>>> I'll show you an orthographic plot with no maskinf tomorrow and you will
>>>     
>>>       
>> see
>>   
>>     
>>> the problem easily, it wraps in a white line along the 0° meridian and a
>>> white circle in the pole
>>>
>>> I think it's the imshow layer that is not totally transparent on the map
>>> background.. I tried every trick I could for example to put some
>>>     
>>>       
>> zero-valued
>>   
>>     
>>> points on each corner to make imshow interpolate correctly the sides, but
>>> that doesn't make any difference
>>>
>>>   
>>>     
>>>       
>>>> De Pauw Antoine wrote:
>>>>     
>>>>       
>>>>         
>>>>> Jeff,
>>>>>
>>>>> Yes they disappear, and they fluctuate with the interpolation method
>>>>>         
>>>>>           
>> used
>>   
>>     
>>>>> For example, nearest interpolation don't show the line
>>>>>
>>>>> Also, if I reduce the grid resolution, the line is thicker, and if I
>>>>>           
> use
>   
>>>>>       
>>>>>         
>>>>>           
>>> a
>>>   
>>>     
>>>       
>>>>> masked array to get rid of undesired values, the border shows really
>>>>> strongly
>>>>>
>>>>> Here's an example everyone will see:
>>>>>
>>>>> http://img225.imageshack.us/img225/2671/testfigep2.png
>>>>>
>>>>> (everything except the clouds is noise)
>>>>>
>>>>> Antoine De Pauw
>>>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry
>>>>>           
> and
>   
>>>>> photophysics laboratory
>>>>> Université Libre de Bruxelles - ULB
>>>>>   
>>>>>       
>>>>>         
>>>>>           
>>>> Antoine:  Sorry to seem dense, but I don't see anything wrong with that 
>>>> plot. I see a white border along the north and south pole, but I 
>>>> intrepret that to be missing values.  However, my eyes are notoriously 
>>>> bad.  I'd like to be to run a script that generates the artifacts 
>>>> myself, so I can zoom in and see the problem myself.  Does the 
>>>> griddata_demo.py script show the same problem for you?
>>>>
>>>> -Jeff
>>>>     
>>>>       
>>>>         
>>>>> -----Original Message-----
>>>>> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
>>>>> Sent: mercredi 17 septembre 2008 19:05
>>>>> To: John Hunter
>>>>> Cc: De Pauw Antoine; Matplotlib Users
>>>>> Subject: Re: [Matplotlib-users] Information request
>>>>>
>>>>> John Hunter wrote:
>>>>>   
>>>>>       
>>>>>         
>>>>>           
>>>>>> On Wed, Sep 17, 2008 at 11:54 AM, John Hunter <[EMAIL PROTECTED]>
>>>>>>           
>>>>>>             
>> wrote:
>>   
>>     
>>>>>>   
>>>>>>     
>>>>>>         
>>>>>>           
>>>>>>             
>>>>>>> Attached is a screenshot (zoom.png) from the gimp, zoomed in near the
>>>>>>> axes border.  The black horizontal line is the top axes border, the
>>>>>>> horizontal grey line is the artifact, the vertical dashed line is a
>>>>>>> grid line.  I don't know if this offers a clue, but if you look at a
>>>>>>> zoom in the upper right corner, the grey  line seems to break up and
>>>>>>> curve down and to the right (corner.png)
>>>>>>>     
>>>>>>>       
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>>>> Sorry, screwed up corner.png (I attached the original and not the
>>>>>> screenshot).  The correct screenshot is attached
>>>>>>   
>>>>>>
>>>>>>
>>>>>>     
>>>>>>         
>>>>>>           
>>>>>>             
>>>>> John:   OK, now I finally see it.  Antoine:  Do these artifacts 
>>>>> disappear if you comment out the imshow call?
>>>>>
>>>>> -Jeff
>>>>>
>>>>>   
>>>>>       
>>>>>         
>>>>>           
>>>> -- 
>>>> Jeffrey S. Whitaker         Phone  : (303)497-6313
>>>> Meteorologist               FAX    : (303)497-6449
>>>> NOAA/OAR/PSD  R/PSD1        Email  : [EMAIL PROTECTED]
>>>> 325 Broadway                Office : Skaggs Research Cntr 1D-113
>>>> Boulder, CO, USA 80303-3328 Web    : http://tinyurl.com/5telg
>>>>
>>>>
>>>>
>>>>     
>>>>       
>>>>         
>>>   
>>>     
>>>       
>>   
>>     
>
>
>   


-- 
Jeffrey S. Whitaker         Phone : (303)497-6313
NOAA/OAR/CDC  R/PSD1        FAX   : (303)497-6449
325 Broadway                Boulder, CO, USA 80305-3328


-------------------------------------------------------------------------
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