4

我在 Matplotlib 中使用 Basemap 来绘制美国地图。但是,我似乎无法删除墨西哥或加拿大来只显示美国。我还需要绘制状态。目前,我的代码是:

self.map = Basemap(llcrnrlon=-119, llcrnrlat=22, urcrnrlon=-64,
                               urcrnrlat=49, projection='lcc', lat_1=33, lat_2=45,
                               lon_0=-95, resolution='i', area_thresh=10000,ax=self.axes)

self.map.drawcoastlines()
self.map.drawcountries()
self.map.drawstates()
self.figure.canvas.draw()

这吸引了美国,并展示了一些墨西哥和加拿大。如果我注释掉self.map.drawcountries(),那么美国南部和北部边界将被删除,所以这无济于事。如果我注释掉self.map.drawcoastlines(),这将删除东西边界。我找不到任何其他命令可以让我只绘制美国(与州)。

有任何想法吗?谢谢!

4

1 回答 1

6

您需要自己绘制多边形。这可以通过读取 shapefile 来完成。请参阅fillstates.py 示例,该示例绘制了美国各州(不包括墨西哥或加拿大)。

于 2012-09-09T05:00:37.607 回答