Cartopy:圆锥范围投影地图的网格线标签设置及范围优化
北大西洋圆锥状地图的两个问题:范围优化与纬度标签位置调整
我用以下代码生成了北大西洋海域的地图,但纬度标签位置有误(需要显示在地图外侧而非内侧),且两侧都没显示出来。推测问题和范围设置方式有关,但还没找到其他实现这种圆锥形状的方法。现在想请教两个问题:
- 有没有更优的范围设置方法来实现这种圆锥形状?
- 怎么把y轴(纬度)标签设置在图表左侧且位于外侧?
# 导入模块 import cartopy import cartopy.crs as ccrs import matplotlib.path as mpath import matplotlib.pyplot as plt import matplotlib.ticker as mticker # 定义投影 dataproj = ccrs.PlateCarree() mapproj = ccrs.Stereographic(central_longitude=-30) # 创建画布与坐标轴 fig = plt.figure() ax = plt.axes(projection=mapproj) # 添加地图要素 ax.add_feature(cartopy.feature.LAND, edgecolor='black') ax.add_feature(cartopy.feature.OCEAN) ### # 我想要实现圆锥形状的地图,以下是参考代码修改后的实现 # # 经纬度边界 xlim = [-60, 0] ylim = [50, 65] lower_space = 3 rect = mpath.Path([[xlim[0], ylim[0]], [xlim[1], ylim[0]], [xlim[1], ylim[1]], [xlim[0], ylim[1]], [xlim[0], ylim[0]], ]).interpolated(20) proj_to_data = ccrs.PlateCarree()._as_mpl_transform(ax) - ax.transData rect_in_target = proj_to_data.transform_path(rect) ax.set_boundary(rect_in_target) ax.set_extent([xlim[0], xlim[1], ylim[0] - lower_space, ylim[1]]) # ### # 设置经纬度刻度与标签 gl = ax.gridlines(crs=ccrs.PlateCarree()) gl.xlocator = mticker.FixedLocator([-60, -45, -30,-15, 0]) gl.ylocator = mticker.FixedLocator([50, 55, 60, 65]) gl.bottom_labels = True gl.left_labels = True gl.top_labels = True gl.right_labels = True

内容的提问来源于stack exchange,提问作者Anne Sophie
相关产品推荐
相关产品推荐

