如何在GrADS绘图中添加右侧气象数据色标?cbar等命令失效如何解决
GrADS添加右侧色标的可行解决方法
- 修正
cbar命令的调用逻辑cbar失效绝大多数情况是调用时机错误,必须在完成主填色图绘制后再执行cbar,提前调用、或者未设置填色模式都会导致命令不生效,标准执行流程示例:
'reinit' 'sdfopen your_mete_data.nc' # 配置绘图区域 'set lon 70 140' 'set lat 0 60' # 必须先设置填色输出模式 'set gxout shaded' # 绘制目标气象变量 'd 2t - 273.15' # 主图绘制完成后调用cbar 'cbar' # 如需自定义色标位置、标签,可追加参数,例如固定在右侧指定区域 'cbar -lon 145 150 -lat 10 50 -title "2米气温(℃)"'
- 提前配置色标自动生成规则
部分GrADS版本默认关闭色标自动生成,可在绘图前通过set cbar系列命令提前配置属性,绘图完成后会自动生成右侧色标:
# 开启色标自动生成 'set cbar on' # 固定色标位置为图像右侧 'set cbar location right' # 配置色标字号、数值格式 'set cbar labelsize 0.12' 'set cbar format %.1f' # 后续正常执行填色绘图命令即可 'set gxout shaded' 'd precip'
- 手动绘制自定义色标
如果自动生成方案仍不生效,可通过自定义色阶、手动绘制色块的方式生成高度自定义的色标:
# 定义色阶与对应颜色映射 levels = [-20,-10,0,10,20,30] colors = [1,2,3,4,5,6] # 在图像右侧区域逐个绘制色标色块、标注数值 i = 1 while (i <= 5) 'set line 'colors[i] 'draw rect 142 'levels[i]' 145 'levels[i+1] 'draw string 147 'levels[i]+0.5' 'levels[i] i = i + 1 endwhile # 加色标标题 'draw string 142 32 "气温(℃)"'
注意事项
- 执行
set gxout bar后要改回set gxout shaded再绘制填色图,否则cbar无法识别色阶对应关系 - 如需自定义色标取值范围,可提前执行
set clevs 最小值 间隔值 最大值设置固定色阶
内容的提问来源于stack exchange,提问作者ibrahim erkol
相关产品推荐
相关产品推荐

