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