首页 > 解决方案 > 设置 pcolormesh 彩条的中点

问题描述

我正在尝试创建一个表面温度数据(加热周数)的 iplt.pcolormesh 地图,其中发散色条的中心正好在 8 上。我这个数据集的最小值和最大值分别大致对应于 -22 和 +22。通过调整和拉伸颜色条的最小值和最大值以超出我的数据范围,我几乎已经实现了我想要做的事情,但是我首先不确定中心颜色是否正好在 8 上,其次。让我的颜色条超出我的数据范围是没有意义的。

此外,因为 8 是数据中的一个不寻常的中心点,所以我想将此标签/刻度设为粗体或以特定方式拉伸颜色图,以强调 >=8 的值,即,颜色图不是完全对称的。

谢谢

# MIROC6 ssp5(8.5)
if (dhw_cube_name == "MIROC6 ssp5(8.5)"):
    enso_events_year_list = [29,30,40,45,46,50,57,63,70,75,80,81,86,89,90]
    for i in range (0, len(enso_events_year_list)):
        event_start_year = enso_events_year_list[i]+2000
        event_end_year = enso_events_year_list[i]+2000
        enso_event_cube = dhw_to_enso_event_timeline(dhw_max_cube_detrended,event_start_year,event_end_year)
        enso_event_cube = enso_event_cube.collapsed('time', iris.analysis.MAX)
        
        enso_event_cube_data = enso_event_cube.data
        enso_event_cube_data.mask[np.where(enso_event_cube_data == 0)] = True
        
        plt.figure()
        iplt.pcolormesh(enso_event_cube,cmap="bwr")#         
        plt.title("{0} {1}\n Major El Nino Event Maximumum DHW".format(dhw_cube_name,event_start_year))
        plt.colorbar(label="DHW",orientation = 'vertical',ticks=[-22, 8, 30])
        plt.clim(-22,36)
        plt.gca().coastlines(linewidth=0.4)
        plt.savefig("/data/local_ssd/cj362/S2P3Rv2.0/dhw/figures/MIROC6_ssp5_enso_event_figures/{0} {1} elnino_colormesh.png".format(dhw_cube_name,event_start_year))

    

标签: pythonmatplotlib

解决方案


推荐阅读