我想用python matplotlib basemap绘制一张以太平洋为中心的南半球地图。在
除非我尝试使用basemap例程shadedrelief、bluemarble或etopo绘制背景图像,否则一切正常。代码(没有我想在地图上绘制的东西)如下所示:
import numpy as np
from mpl_toolkits.basemap import Basemap
from matplotlib.backends.backend_pdf import PdfPages
latmin = -72.5
latmax = 40.
lonmin = 60.
lonmax = 370.
pp = PdfPages('datamap.pdf')
m = Basemap(projection='merc', llcrnrlat=latmin, urcrnrlat=latmax, llcrnrlon=lonmin, urcrnrlon=lonmax, resolution="c")
m.drawcoastlines(linewidth=0.25)
#m.shadedrelief()
pp.savefig()
pp.close()
当我取消对m.shadeDelief()的注释时,会得到以下结果:
^{pr2}$当我选择(出于测试目的)的方式时,那些经度也不超过180度的较小的贴图(包括shadedreif)都可以正常工作。这让我想到经度格式的东西在这里不起作用。我尝试了一些方法,但我似乎找不到一个方法来解决这个问题,同时仍然绘制相同的地图部分
你知道我怎么在地图的背景上画一个阴影吗?在
最好的
西联
在basemap/init代码中似乎有一个bug。事实上,如果你看看github上的最新版本[seehttps://github.com/matplotlib/basemap/blob/master/lib/mpl_toolkits/basemap/init.py#L4139以及它与错误的第4117行有何不同],你会发现这个bug已经解决了。这意味着您可以:
或者获取更新版本的basemap。这两种方法中的任何一种都能解决你的问题。在
相关问题 更多 >
编程相关推荐