On 10/19/2010 05:44 AM, vaishu wrote: > > Hey guys, > > I am a new user to the python& matplotlib, this might be a simple question > but I searched the internet for hours and couldn't find a solution for this. > > I am plotting precipitation data from which is in the NetCDF format. What I > find weird is that, the data doesn't have any negative values in it.(I > checked that many times,just to make sure). But the value in the colorbar > starts with a negative value (like -0.0000312 etc). It doesnt make sense > because I dont do any manipulations to the data, other that just selecting a > part of the data from the big file and plotting it. > > So my code doesn't much to it. Here is the code: > > from mpl_toolkits.basemap import Basemap > import numpy as np > import matplotlib.pyplot as plt > from netCDF4 import Dataset > cd progs > f=Dataset('V21_GPCP.1979-2009.nc') > lats=f.variables['lat'][:] > lons=f.variables['lon'][:] > prec=f.variables['PREC'][:] > la=lats[31:52] > lo=lons[18:83] > pre=prec[0,31:52,18:83] > m = Basemap(width=06.e6,height=05.e6,projection='gnom',lat_0=15.,lon_0=80.) > x, y = m(*np.meshgrid(lo,la)) > m.drawcoastlines() > m.drawmapboundary(fill_color='lightblue') > m.drawparallels(np.arange(-90.,120.,5.),labels=[1,0,0,0]) > m.drawmeridians(np.arange(0.,420.,5.),labels=[0,0,0,1]) > cs=m.contourf(x,y,pre,50,cmap=plt.cm.jet) > plt.colorbar() > > The output that I got for that code was a beautiful plot, with the colorbar > starting from the value -0.00001893, and the rest are positive values, and I > believe are correct. Its just the minimum value thats bugging me. > http://old.nabble.com/file/p30001558/jan1979plot.png > > I would like to know: > > Is there anything wrong in my code? cos I know that the data is right.
I can't reproduce the problem without the data file; can you supply it? Also, what version of matplotlib are you using? > Is there a way to manually change the value to 0? > Is it right for the values in the colorbar to change everytime we run the > code, cos for the same data, the next time I run the code, the values go > like this " -0.00001893, 2.00000000, 4.00000000, 6.00000000 etc" > I want to customize them to "0.0, 2.0, 4.0, 6.0 etc" In your call to contourf, instead of giving a number of levels, give a sequence of the desired levels, e.g.: cs=m.contourf(x,y,pre,np.arange(0, 20, 0.5),cmap=plt.cm.jet) Eric > > > Thanks, > Vaishu > ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users