Jeff,
  Do you think it's possible the names or CITIESX020 variable are not being 
brought in in the right order?
  I modified my code to use scatter, and, although it looks like the dots 
are in the right place, the names aren't matching?
see code:
=========
import pylab as p
import numpy
from matplotlib.toolkits.basemap import Basemap as Basemap
from matplotlib.colors import rgb2hex
from matplotlib.patches import Polygon

# Lambert Conformal map of lower 48 states.
# create new figure
#http://nationalatlas.gov/metadata/citiesx020.faq.html
#http://nationalatlas.gov/atlasftp.html?openChapters=chpref#chpref
fig=p.figure()
m1 = Basemap(llcrnrlon=-119,llcrnrlat=22,urcrnrlon=-64,urcrnrlat=49,\
            projection='lcc',lat_1=33,lat_2=45,lon_0=-95,resolution='c')
shp_info = 
m1.readshapefile(r'C:\Python25\Lib\basemap-0.9.9.1\examples\citiesx020','states',drawbounds=True)

ax=p.gca()

#define SHPT_POINT        1    Points
#define SHPT_ARC          3    Arcs (Polylines, possible in parts)
#define SHPT_POLYGON      5    Polygons (possible in parts)
#define SHPT_MULTIPOINT   8    MultiPoint (related points)
print shp_info
print m1.states_info[0].keys()
seqnum={}
criteriatodisplay=[]
names={}
ii=0
for shapedict in m1.states_info:
    if int(shapedict['POP_2000'])>100000:
#'STATE_FIPS', 'NAME', 'POP_2000', 'FEATURE', 'COUNTY', 'STATE', 'FIPS', 
'CITIESX020', 'FIPS55', 'DISPLAY', 'POP_RANGE']
        print 'STATE_FIPS = %s, NAME = %s, POP_2000=%s, FEATURE = %s, 
COUNTY=%s, STATE=%s, FIPS=%s, CITIESX020 = %s, FIPS55=%s, DISPLAY=%s, 
POP_RANGE=%s' %\
        (str(shapedict['STATE_FIPS']), str(shapedict['NAME']), 
str(shapedict['POP_2000']),  str(shapedict['FEATURE']), 
str(shapedict['COUNTY']), str(shapedict['STATE']), str(shapedict['FIPS']), 
str(shapedict['CITIESX020']), str(shapedict['FIPS55']), 
str(shapedict['DISPLAY']), str(shapedict['POP_RANGE']))
        # have an index of the names
        seqnum[shapedict['CITIESX020']]=shapedict['NAME']
        criteriatodisplay.append(shapedict['CITIESX020'])

        ii+=1

print ii
#x, y = zip(*m1.states)
#print m1.states[1]
#print x[1]
#print y[1]
#ii=0
x=[]
y=[]
ii=0
for nshape,seg in enumerate(m1.states):
    if nshape in criteriatodisplay:
        x.append(seg[0])
        y.append(seg[1])
        p.text(seg[0],seg[1],seqnum[nshape],fontsize=12)
        ii+=1

        #print 'Shape num %s, coords=%s' % (seqnum[nshape], seg)
        #   ax.annotate(seqnum[nshape],seg)
m1.scatter(x,y,2,'b',marker='o',faceted=False,zorder=10)

#ax.annotate(s='s',xy=(int(x),int(y)))
#p.figtext(x,y,'o',weight='heavy', size = 16)
m1.drawcoastlines()
m1.fillcontinents()
m1.drawcountries()
m1.drawstates()
m1.drawparallels(numpy.arange(25,65,4),labels=[1,0,0,0])
m1.drawmeridians(numpy.arange(-120,-40,4),labels=[0,0,0,1])
p.title('Test Cities')
p.show()
========
kurt

<snip>



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to