""" 三、墨卡托下经纬度的添加 在官网上提供了墨卡托下添加经纬度标签的样例。 来源:https://cloud.tencent.com/developer/article/1790266 20221215 """ import matplotlib.pyplot as plt import numpy as np import cartopy.crs as ccrs import cartopy.feature as cf from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER plt.rcParams['font.sans-serif'] = ['SimHei'] fig = plt.figure(figsize=(2, 2), dpi=400) ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.LambertConformal(central_longitude=110)) ax.spines['geo'].set_linewidth(0.5) # 调节边框粗细 ax.set_extent([100, 150, 5, 55], crs=ccrs.PlateCarree()) ax.set_title('cartopy.feature', fontsize=5) ################################################################ ax.add_feature(cf.BORDERS.with_scale('10m'), lw=0.4) ax.add_feature(cf.STATES.with_scale('110m')) ax.add_feature(cf.COASTLINE.with_scale('10m'), lw=0.4) ax.add_feature(cf.LAKES.with_scale('110m')) ax.add_feature(cf.LAND.with_scale('110m')) ax.add_feature(cf.OCEAN.with_scale('110m')) ax.add_feature(cf.RIVERS.with_scale('110m'), lw=0.4) ################################################################ # LAKES_border = cf.NaturalEarthFeature('physical', 'lakes', '10m', edgecolor='black', facecolor='never') # ax.add_feature(LAKES_border, linewidth=0.1) # gl = ax.gridlines(draw_labels=True, linestyle=":", linewidth=0.3, x_inline=False, y_inline=False, color='k') # gl.top_labels = False # 关闭上部经纬标签 # gl.right_labels = False # gl.xformatter = LONGITUDE_FORMATTER # 使横坐标转化为经纬度格式 # gl.yformatter = LATITUDE_FORMATTER # gl.xlocator = mticker.FixedLocator(np.arange(80, 140, 10)) # gl.ylocator = mticker.FixedLocator(np.arange(10, 60, 10)) # gl.xlabel_style = {'size': 4} # 修改经纬度字体大小 # gl.ylabel_style = {'size': 4} fig_name = "./img/Feature_COASTLINE_10m.png" plt.savefig(fig_name, dpi=512, # 分辨率,每英寸的点数 512 bbox_inches='tight', pad_inches=0.1, # (默认: 0.1)所保存图形周围的填充量 transparent=True, facecolor='auto', # 默认 auto edgecolor='r', # 默认 auto # papertype='letter', # 3.6之后不支持了。纸张大小,仅支持postscript输出。取值范围为: # {'letter', 'legal', 'executive', 'ledger', 'a0' - 'a10', 'b0' - 'b10'}。默认值为None。 orientation='portrait') # {‘landscape,’ ‘portrait’}: 目前只有后端支持