问题1:colorlabel下面的数字不显示小数点前面的0
在使用wrf_contour函数画图的时候,突然发现默认的colorbar下面的数字不显示小数点前面的0
一通搜索之后,知道了是cnLineLabelFormat这个属性在决定字符串的格式,但大家给出的解决方案也是五花八门,之前用得也是糊里糊涂。这次索性在官网将各个符号的代笔意义研究了一遍,并做了简单整理。如有汉化不妥之处,请详见官网 Format conversion specification strings (ucar.edu)
因此,回到我们最开始遇到的问题,就会发现@符号能解决该问题,格式方面选择通用格式
cnres@cnLineLabelFormat = "@g"
问题2:colorbar加单位
更多的属性也可以去官网lb里面研究,常用设置的例子如下
opts_cn@lbTitleOn = True ; turn on title
opts_cn@lbTitleString = "~F25~ K/s " ; title string
opts_cn@lbTitlePosition = "Right" ;title position
opts_cn@lbTitleJust = "CenterRight"
opts_cn@lbTitleFontHeightF = 0.035 ; make title smaller
opts_cn@lbTitleDirection = "Across" ; title direction
opts_cn@lbTitleExtentF = 0.01
opts_cn@lbTitleOffsetF = 0.05
3. 字体上下标、特殊字符的设置
NCL内置了43种字体 NCL Graphics: font tables (ucar.edu),其中我最常用的是26号新罗马加粗。这些字体在官网都可以点开,查看键盘的对应位置。
字体设置:
1. 属性通用设置:在各个属性字体设置这一项里选取对应的字体
opts_cn@tiXAxisFont = 26
2. 选取特定字符:
可以使用“~Fn~”选择字体,n表示字体号。如需表示密度,可以用“~F33~r”
3. 上下标:
以“~B~”开始下标、“~S~”开始上标,以“~N~”结束。
例如,我们要输出一个新罗马格式的
应表示为"~F33~m~F25~g/m~S~3~N~"
另外要注意的是NCL字体的加粗不能通过外部设置实现,只能选取默认的加粗字体
其中有两种字体,也是画图种常用的,greek和math_symbols