2013-08-22 27 views
1

我需要使用mollweide投影,但只绘制感兴趣区域。 (例如,lat = [10,90],lon = [ - 25,45])。下面的基本代码。底图只绘制感兴趣区域,不绘制整个地球

看来这是不可能的在底图 (http://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.Basemap)中的一些预测。

也许最终情节可以用多边形掩盖。但也许有一个更清洁的方式?

from mpl_toolkits.basemap import Basemap 
import numpy as np 
import matplotlib.pyplot as plt 

m = Basemap(projection='moll',lon_0=0, lat_0=0, 
     llcrnrlon = -25.0, llcrnrlat = 10.0, 
     urcrnrlon = 45.0, urcrnrlat = 90.0) 

# draw parallels and meridians. 
m.drawparallels(np.arange(10.0, 91.0, 5.)) 
m.drawmeridians(np.arange(-25.0, 46.0, 5.)) 

m.drawmapboundary(fill_color='white') 
plt.show() 

回答

0

你可以抓住轴并设置与普通matplotlib极限:

ax = plt.gca() 

ax.set_xlim(-25,45) 
ax.set_ylim(10,90) 
+0

我在不同的地方试过了你的代码,但平行线+经线仍然吸引着你感兴趣的区域。全球大纲仍然是阴谋。也许我错过了什么? – 3150

0

我相信你是对的,作为的版本1.0.7,凸起在the documentation表示为“全球性”不提供子设置。