You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Iris Quick Plot中扩展色棒?遇QuadMesh属性错误

问题:如何在Iris绘图中扩展色棒两端?

你遇到的AttributeError是因为extend是色棒(colorbar)的专属参数,并非qplt.pcolormesh的可用参数,直接传给pcolormesh方法会报错。正确的做法是在创建色棒时指定extend='both'。

修改方案

  1. 先保存qplt.pcolormesh返回的绘图对象
  2. 调用plt.colorbar()时传入extend='both'参数

修改后的完整代码

import matplotlib.colors as mcolors
import iris.plot as qplt
import matplotlib.pyplot as plt
import numpy as np
import os
import cartopy.feature as cf
import iris

def bnorm(min_val, max_val, nlevels):
    '''
    small function to set the boundary norm and colormap using 
    a min, max and number of colors
    '''
    # set up even bounds 
    bounds = np.linspace(min_val, max_val, nlevels)
    # get one more color than bounds from colormap
    colors = plt.get_cmap('BrBG')(np.linspace(0,1,len(bounds)-1))
    cmap = mcolors.ListedColormap(colors)
    # create norm from bounds
    norm = mcolors.BoundaryNorm(boundaries=bounds, ncolors=len(bounds)-1)

    return norm, cmap

plotno=0
plt.figure(figsize=(14, 12))
    
for row, models in enumerate(['GERICS', 'CLMcom']):
    for col, drivers in enumerate(['Nor','MPI','MOHC']):
        chan = os.path.join(CLIMDIR, 'pr_'+drivers+'_change_'+models+'_avg_max_day.nc')
        change = iris.load_cube(chan)
        
        plotno+=1

        # Future Change
        norm, cmap = bnorm(-80, 80, 9)
        
        plt.subplot(2, 3, plotno)
        # 保存pcolormesh返回的QuadMesh对象
        mesh = qplt.pcolormesh(change, norm=norm, cmap=cmap)
        plt.title('Daily Precipitation(mm/day)\n2071-2100 - Relative to 1981-2010')
        ax = plt.gca()
        ax.coastlines()
        ax.add_feature(cf.BORDERS)  
        # 给当前子图添加色棒,并指定extend参数
        plt.colorbar(mesh, extend='both')

plt.tight_layout()  # 可选,调整子图间距避免标题和色棒重叠
plt.show()

补充说明

  • 由于你使用了BoundaryNorm,当数据值超出bnorm设置的-80到80范围时,会被映射到两端的颜色,配合extend='both'会在色棒两端显示小三角,直观标识超出范围的数值。
  • 修正了原代码中import iris.plot as iplt但实际调用qplt的不一致问题,统一为qplt避免混淆。

内容的提问来源于stack exchange,提问作者António Manuel Lameira Gaspar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:40:21