【问题标题】:Color bar limits matplotlib颜色条限制 matplotlib
【发布时间】:2022-01-06 22:31:10
【问题描述】:

我正在尝试创建一个包含 4 个 hist2d 子图和一个颜色条的图。 问题是每个子图可以有不同范围的 z 值,所以颜色条不统一。 我想将颜色条设置为预定义的范围。

这是我正在使用的代码:

def multiple_med_plot_test(file):
    extent = [-8, 37, 28, 46]
    fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(26, 11), constrained_layout=True,
                             subplot_kw={'projection': ccrs.PlateCarree()})
    ax0 = axes[0][0]
    ax1 = axes[0][1]
    ax2 = axes[1][0]
    ax3 = axes[1][1]
    axes_dict = {'Dec': ax0, 'Aug': ax1, 'Sep': ax2, 'Sum': ax3}

    for month in axes_dict.keys():
        ax = axes_dict[month]
        ax.add_feature(cfeature.LAND, edgecolor='k', zorder=50)
        ax.set_extent(extent)
        gl = ax.gridlines(draw_labels=True, zorder=100, color='grey', linestyle='--')
        gl.top_labels = False
        gl.right_labels = False
        gl.xlabel_style = {'size': 16}
        gl.ylabel_style = {'size': 16}
        if ax in [ax1, ax3]:
            gl.left_labels = False
        ax.set_title(month, fontsize=18, color='darkred')
        if month != 'Sum':
            hist0 = ax.hist2d(file.Long, file.Lat, range=[(-8, 37), (28, 46)], bins=(500, 200))
        elif month == 'Sum':
            hist1 = ax.hist2d(file.Long, file.Lat, range=[(-8, 37), (28, 46)], bins=(500, 200))

    fig.suptitle('Lightning Density per Month', fontsize=22)
    cbar = fig.colorbar(hist1[3], ax=axes, shrink=0.95)
    cbar.set_label('# of lightnings', fontsize=20, rotation=-90, labelpad=30)
    cbar.ax.tick_params(labelsize=16)
    # plt.savefig('D:/Lightning Data/Yearly_Summary', dpi=100)
    plt.show()

在以前版本的代码中,我使用 plt.clim,这很棒,但我现在的代码方式不允许我这样做。

我想得到一些帮助!

【问题讨论】:

    标签: python matplotlib histogram colorbar


    【解决方案1】:

    如果您想要线性刻度,请设置vminvmax 参数。对于类似对数的比例或类似比例,请使用norm。请参阅hist2d 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2017-07-16
      • 2021-05-14
      • 1970-01-01
      相关资源
      最近更新 更多