Matplotlib Mollweide/Hammer 投影:仅感兴趣区域
Matplotlib Mollweide/Hammer projection: region of interest only
我想知道是否有一种方法可以仅显示基于底图 (matplotlib) 中 Mollweide/Hammer 投影的绘图中的感兴趣区域。
我正在尝试将绘图边界大致设置为太平洋板块,如下面的 link 所示。但是,set_xlim 和 set_ylim 函数似乎没有任何作用。在此先感谢您的指导。
根据文档,Hammer
和 Mollweide
投影都不允许这样做,因为它们会打印出整个世界地图。这是一些使用 Polyconic
投影的代码,但它以直线为界。这里的技巧是在创建时定义拐角的经度和纬度。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
my_map = Basemap(projection='poly', lat_0=0, lon_0=-160,
resolution = 'h', area_thresh = 0.1,
llcrnrlon=140, llcrnrlat=-60,
urcrnrlon=-100, urcrnrlat=60)
plt.figure(figsize=(16,12))
my_map.drawcoastlines()
my_map.drawcountries()
my_map.fillcontinents(color='coral', lake_color='aqua')
my_map.drawmapboundary(fill_color='aqua')
my_map.drawmeridians(np.arange(0, 360, 20))
my_map.drawparallels(np.arange(-90, 90, 10))
plt.show()
结果:
请注意,这实际上显示的区域小于您提供的图片中的区域。
我想知道是否有一种方法可以仅显示基于底图 (matplotlib) 中 Mollweide/Hammer 投影的绘图中的感兴趣区域。
我正在尝试将绘图边界大致设置为太平洋板块,如下面的 link 所示。但是,set_xlim 和 set_ylim 函数似乎没有任何作用。在此先感谢您的指导。
根据文档,Hammer
和 Mollweide
投影都不允许这样做,因为它们会打印出整个世界地图。这是一些使用 Polyconic
投影的代码,但它以直线为界。这里的技巧是在创建时定义拐角的经度和纬度。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
my_map = Basemap(projection='poly', lat_0=0, lon_0=-160,
resolution = 'h', area_thresh = 0.1,
llcrnrlon=140, llcrnrlat=-60,
urcrnrlon=-100, urcrnrlat=60)
plt.figure(figsize=(16,12))
my_map.drawcoastlines()
my_map.drawcountries()
my_map.fillcontinents(color='coral', lake_color='aqua')
my_map.drawmapboundary(fill_color='aqua')
my_map.drawmeridians(np.arange(0, 360, 20))
my_map.drawparallels(np.arange(-90, 90, 10))
plt.show()
结果:
请注意,这实际上显示的区域小于您提供的图片中的区域。