shp_path = r'C:\Program Files\SPEI\DM.shp' # 确定shp文件地址 proj = ccrs.PlateCarree() # 简写投影 extent = [88, 144, -14, 30.01] # 限定绘图范围 reader = Reader(shp_path) enshicity = cfeat.ShapelyFeature(reader.geometries(), proj, edgecolor='k', facecolor='none') ##黑边无填充 # -------------设置经纬度范围------------- lons = np.arange(92, 141, 0.5) lats = np.arange(-10.5, 28.5, 0.5) lons, lats = np.meshgrid(lons, lats) p = 2 if p == 1: out_fig = ".tif" elif p == 2: out_fig = ".svg" # print (p) # colorn = 'gist_heat_r' # colorn = 'hot_r' colorn = 'bwr' leveln = [-2.5, -1.5, -0.5, 0.5, 1.5, 2.5] leveln1 = [-2, -1, 0, 1, 2] leveln2 = ['显著下降', '不显著下降', '无变化', '不显著上升', '显著上升'] # filen = 'delta.flt' # titlen = "Resistance" titlen = "1970-2015年SPEI空间演变格局" # labeln = "天(day)" # labeln = "摄氏度(℃)" extendn = 'neither' out_filen = 'delta.png' colorbar_label_font = colorbar_label_font_C cm = mpl.cm.get_cmap(colorn, 20) # 分为7级 num:Spectral_r 2:CMRmap_r 1:gist_heat_r cm.set_bad("w") # 设置背景色 cm.set_over("darkslategray") cm.set_under("darkslategray") levels = leveln norm = BoundaryNorm(levels, ncolors=cm.N, clip=True)
时间: 2024-04-08 15:36:20 浏览: 91
这段代码是用来设置地图绘制的一些参数和样式。首先,确定了shp文件的地址,并使用ccrs.PlateCarree()设置了投影方式。然后,限定了绘图范围。接下来,使用Reader读取shp文件的几何信息,并使用cfeat.ShapelyFeature创建了一个ShapelyFeature对象,该对象用于绘制地图的边界线。然后,定义了经纬度范围,并使用np.meshgrid生成经纬度网格。根据变量p的值,确定了输出文件的格式。然后,设置了颜色映射、等级、标题、标签等参数。最后,使用mpl.cm.get_cmap获取颜色映射对象,并进行一些设置。
需要注意的是,这段代码中有一些变量和函数的定义是缺失的,比如colorbar_label_font_C和BoundaryNorm函数,可能需要根据上下文补充或者自行定义。
阅读全文