The first example produced no plotted symbols but no errors on execution. The
second example produced this:
Plotting, please wait...maybe more than 10 seconds
Traceback (most recent call last):
File "testNew.py", line 137, in <module>
data = np.loadtxt('file2.txt')
File "/usr/lib/python2.6/dist-packages/numpy/lib/io.py", line 489, in loadtxt
X.append(tuple([conv(val) for (conv, val) in zip(converters, vals)]))
ValueError: invalid literal for float(): 39.4670,
Grrrr......
My code follows. I believe this is standard python and matplotlib. Should
produce a map of Northeast US. Perhaps someone could get this working with a
few example points:
39.4670, -76.1670
46.4000, -74.7670
45.3830, -75.7170
43.6170, -79.3830
45.5170, -73.4170
45.6170, -74.4170
43.8330, -77.1500
43.9500, -78.1670
43.2500, -79.2170
43.8330, -66.0830
#!/usr/bin/env python
# v0.5 19 June 2010
# General purpose plotter of 2-D gridded data from NetCDF files,
# plotted with map boundaries.
# NetCDF file should have data in either 2-D, 3-D or 4-D arrays.
# Works with the netCDF files in the tutorial, and also the
# files available for download at:
# http://www.cdc.noaa.gov/cdc/data.ncep.reanalysis.html
# Adapted from the basemap example plotmap_pcolor.py,
# Some of the variable names from that example are retained.
#
# Uses basemap's pcolor function. Pcolor accepts arrays
# of the longitude and latitude points of the vertices on the pixels,
# as well as an array with the numerical value in the pixel.
verbose=0 #verbose=2 says a bit more
import sys,getopt
from mpl_toolkits.basemap import Basemap, shiftgrid, cm
#from netCDF3 import Dataset as NetCDFFile
from mpl_toolkits.basemap import NetCDFFile
from pylab import *
#from matplotlib.mlab import csv2rec
alloptions, otherargs= getopt.getopt(sys.argv[1:],'ro:p:X:Y:v:t:l:u:n:') # note
the : after o and p
proj='lam'
#plotfile=None
#plotfile='testmap2.png'
usejetrev=False
colorbounds=[None,None]
extratext=""
xvar=None
yvar=None
thevar=None
therec=None
thelev=None
cbot=None
ctop=None
startlon=-180 #default assumption for starting longitude
for theopt,thearg in alloptions:
print theopt,thearg
if theopt=='-o': # -o needs filename after it, which is now thearg
plotfile=thearg
elif theopt=='-p':
proj=thearg
elif theopt=='-X':
xvar=thearg
elif theopt=='-Y':
yvar=thearg
elif theopt=='-v':
thevar=thearg
elif theopt=='-t':
thetitle=thearg
elif theopt=='-l':
cbot=thearg
elif theopt=='-u':
ctop=thearg
elif theopt=='-n':
therec=thearg
elif theopt=='-m':
thelev=thearg
elif theopt=='-r':
usejetrev=True
else: #something went wrong
print "hmm, what are these??? ", theopt, thearg
sys.exit()
print "\nPlotting, please wait...maybe more than 10 seconds"
if proj=='lam': #Lambert Conformal
m = Basemap(llcrnrlon=-80.6,llcrnrlat=38.4,urcrnrlon=-66.0,urcrnrlat=47.7,\
resolution='l',area_thresh=1000.,projection='lcc',\
lat_1=65.,lon_0=-73.3)
xtxt=200000. #offset for text
ytxt=200000.
parallels = arange(38.,48.,4.)
meridians = arange(-80.,-68.,4.)
else: #cylindrical is default
# m = Basemap(llcrnrlon=-180.,llcrnrlat=-90,urcrnrlon=180.,urcrnrlat=90.,\
# resolution='c',area_thresh=10000.,projection='cyl')
m =
Basemap(llcrnrlon=startlon,llcrnrlat=-90,urcrnrlon=startlon+360.,urcrnrlat=90.,\
resolution='c',area_thresh=10000.,projection='cyl')
xtxt=1.
ytxt=0.
parallels = arange(-90.,90.,30.)
if startlon==-180:
meridians = arange(-180.,180.,60.)
else:
meridians = arange(0.,360.,60.)
if verbose>1: print m.__doc__
xsize = rcParams['figure.figsize'][0]
fig=figure(figsize=(xsize,m.aspect*xsize))
#ax = fig.add_axes([0.08,0.1,0.7,0.7],axisbg='white')
ax = fig.add_axes([0.06,0.00,0.8,1.0],axisbg='white')
# make a pcolor plot.
#x, y = m(lons, lats)
#p = m.pcolor(x,y,maskdat,shading='flat',cmap=cmap)
#clim(*colorbounds)
# axes units units are left, bottom, width, height
#cax = axes([0.85, 0.1, 0.05, 0.7]) # colorbar axes for map w/ no graticule
cax = axes([0.88, 0.1, 0.06, 0.81]) # colorbar axes for map w/ graticule
axes(ax) # make the original axes current again
######### Plot symbol at station locations #################
#lines=open('file2.txt','r').readlines()
#(lats,lons)=([],[])
#for line in lines:
# (lat,lon)=line.strip().split(',')
# lats.append(float(lat))
# lons.append(float(lon))
#for i in range(len(lons)):
# plt.plot(lats,lons,'*')
#plt.plot(lons,lats,'*')
#data = csv2rec('file2.txt',delimiter=',')
#plot(data[:,0],data[:,1],'o')
#data = csv2rec('file2.txt',delimiter=' ',names=['lat','lon'])
#plot(data['lat'],data['lon'],'o')
data = np.loadtxt('file2.txt')
plot(data[:,0],data[:,1],'o')
xpt,ypt = m(-75.0,43.0)
text(xpt,ypt,'*')
# draw coastlines and political boundaries.
m.drawcoastlines()
m.drawcountries()
m.drawstates()
# draw parallels and meridians.
# label on left, right and bottom of map.
m.drawparallels(parallels,labels=[1,0,0,0])
m.drawmeridians(meridians,labels=[1,1,0,1])
#if plotfile:
# savefig(plotfile, dpi=72, facecolor='w', bbox_inches='tight',
edgecolor='w', orientation='portrait')
#else:
# show()
#plt.savefig('map.png')
plt.savefig('map.eps')
# comment show to mass produce
--- On Tue, 4/19/11, G Jones <glenn.calt...@gmail.com> wrote:
From: G Jones <glenn.calt...@gmail.com>
Subject: Re: [Matplotlib-users] plotting points/locations from data file
To: "Michael Rawlins" <rawlin...@yahoo.com>
Cc: "Ian Bell" <ib...@purdue.edu>, Matplotlib-users@lists.sourceforge.net
Date: Tuesday, April 19, 2011, 8:12 PM
No need for a header, but I guess my example was a little too simple. You could
do:
data = csv2rec(filename,delimiter=' ',names=['lat','lon'])
plot(data['lat'],data['lon'],'o')
or you could do
data = np.loadtxt(filename)
plot(data[:,0],data[:,1],'o')
In general, I strongly recommend developing with ipython --pylab. That way all
the documentation is at your fingertips using the ? and ?? notation.
------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve
application availability and disaster protection. Learn more about boosting
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users