减小Matplotlib底图的大小

时间:2014-07-08 15:23:45

标签: python python-2.7 matplotlib matplotlib-basemap

在各种操作和手动运行的Python脚本中,我每天使用matplotlib的底图生成数千个加利福尼亚图:

mp = Basemap(width=1284000,height=1164000,projection='lcc',lat_1=30.,lat_2=60,\
             lat_0=37,lon_0=-120.5,resolution='c',rsphere=6370000.00)
# fill data: lats, lons, grid
cs = orb.pcolor(lons,lats,grid,cmap=cm.jet,norm=colors.LogNorm(),latlon=True)
mp.drawcounties()

然而,我每天都要花费数十小时的计算时间来装载覆盖整个世界的这些大型底图。我所需要的只是加利福尼亚州的县,但我最终将世界上所有的县装入记忆中。我喜欢这个库有多灵活,但它正式太慢了。

  • 我怎样才能更快地制作这些地图?
  • 我能以某种方式创建matplotlib Basemap的裁剪版本,只有加利福尼亚?
  • 是否有更快的非matplotlib方法来创建地理参考图?

example California plot

1 个答案:

答案 0 :(得分:3)

  

我怎样才能更快地制作这些地图?

您已使用最低分辨率(“c”)。您可以更改“area_thresh”参数,但我认为这不会有太大帮助。您可能必须按照绘制数据本身的方式进行工作。

  

我能以某种方式创建matplotlib底图的裁剪版本,只有加利福尼亚?

您可以下载加利福尼亚州的自定义地图并仅绘制该地图。底图附带基本世界地图,但您可以使用其他来源的地图。应该很容易得到一个谷歌搜索“加州shapefile”。使用mpl_toolkits.basemap中的“readshapefile”方法加载它。

This notebook展示了如何使用readshapefile和替代方法(pyshp模块)。

  

是否有更快的非matplotlib方法来创建地理参考图?

我听说过有关Vincent的好消息,但我自己没有尝试过。