2017-04-18 105 views
0

我是新來的cartopy,仍在學習基本功能。cartopy - set_extent()擴展請求邊界

我試圖繪製一個特定的區域,然而,當我請求80oN時,cartopy擴展了這個區域,併產生了一個地圖上升到約85oN。有沒有一種方法可以確保我只能訪問我感興趣的區域?

plt.figure(figsize=(5.12985642927, 3)) 
ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=-35)) 
ax.set_extent([-100, 30, 0, 80]) 
ax.coastlines(resolution='110m') 
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, 
       linewidth=2, color='gray', alpha=0.5, linestyle='--') 

PC regional map

回答

2

你應該確保告訴set_extent方法是什麼座標您在指定範圍的系統,在這種情況下:

ax.set_extent([-100, 30, 0, 80], crs=ccrs.PlateCarree()) 

這種方法是優選的cartopy,因爲它避免了使用set_xlim/set_ylim它總是在投影座標系下操作,當使用除PlateCarree()以外的其他投影時,這可能導致很多混淆。使用set_extent與明確的crs將始終做你所期望的,而不管你的情節的投影。

1

你試圖ax.set_xlim設定x軸的上限和下限? Here是一些使用示例和說明。

+0

謝謝。很高興知道我可以用cartopy拾取一些matplotlib函數。 是的。添加 ax.set_ylim([0,80]) 讓我什麼我想要的東西 plt.figure(figsize =(5.12985642927,3)) AX = plt.axes(投影= ccrs.PlateCarree(central_longitude = - 35)) ax.set_extent([ - 100,30,0,80]) ax.set_ylim([0,80]) ax.coastlines(resolution ='110m') gl = ax.gridlines(crs = ccrs.PlateCarree(),draw_labels = True, linewidth = 2,color ='gray',alpha = 0.5,linestyle =' - ') http://imgur.com/a/JYzEm –