2013-08-22 29 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表示爲「全球性」不提供子設置。