登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 沐雨淋觞 于 2025-1-8 09:00 编辑
这份代码,我是参照气象家园某位兄台的思路制作的,后面翻找的时候,包括查浏览历史记录找了很久没找到。如果读者们知道麻烦引个路,我好引用一下。
本篇首发CSDN,原文https://blog.csdn.net/weixin_48458238/article/details/144993624
函数让 colorbar 与主图等高的方法,其实是应用于 colorbar 中的 cax 参数来达到精确控制它的位置和长宽。 用这个方法后,会导致原先具备的部分可选参数'fraction', 'pad', 'shrink', 'aspect', 'anchor','panchor'失去效果。 但不包括修改刻度的方向以及修改刻度标签等等。 以下代码设计思路,设计一个空类,用于承装sameLength_colorbar函数的动态参数,其中包括:方位location 和 距主图边距margin。 用这个方法,主要方便于后续如果有新变量的再添加。 由于局限于(也不习惯)论坛上对函数及类的排版与编写,关于参数的介绍及代码以图片的形式,详见如下。 使用基于以上sameLength_colorbar设置,我们可以放置在一个新的py文件内,如sLcolorbar.py,当作调用的一个库包。 - from sLcolorbar import sameLength_colorbar
复制代码
位于右侧在调用的时候,跟原本使用fig.colorbar或者plt.colorbar的方法一样。 - cb = sameLength_colorbar(ct,'vertical')
复制代码
位于底部如果希望色标colorbar在底部,这里建议间距调成0.1,即间距为10%的主图高度,因为主图还有经纬度,所以要间隔更大些: - cb = sameLength_colorbar(ct,'horizontal',margin=0.1)
- cb.ax.set_xticklabels([''] + [str(tick) for tick in cb.get_ticks()[1:-1]] + [''])
复制代码
位于顶部方向orientation 选择 水平horizontal ,同时 方位location 默认为0,则为底部,需修改成1,代表放置于顶部。与主图距离:8%的主图高度,以方便空出地方展现色标的刻度及刻度标签。 - cb = sameLength_colorbar(ct,'horizontal',location=1,margin=0.08)
- cb.ax.set_xticklabels([''] + [str(tick) for tick in cb.get_ticks()[1:-1]] + [''])
复制代码
位于左侧方向orientation 选择 垂直vertical ,同时 方位location 默认为0,则为右侧,需修改成1,代表放置于左侧。与主图距离:8%的主图宽度。同时调整色标的刻度和刻度标签的朝向。 - cb = sameLength_colorbar(ct,'horizontal',location=1,margin=0.08)
- cb.ax.set_yticklabels([''] + [str(tick) for tick in cb.get_ticks()[1:-1]] + [''])
- cb.ax.tick_params('y',left=True,right=False,labelleft=True,labelright=False)
复制代码
|