python 如何实现colorbar的标签位于每个色标中间(正下方) 您所在的位置:网站首页 colorbar设置位置 python 如何实现colorbar的标签位于每个色标中间(正下方)

python 如何实现colorbar的标签位于每个色标中间(正下方)

2024-01-10 09:07| 来源: 网络整理| 查看: 265

前言 python实现colorbar标签的多样化显示

大部分文献中colorbar的色标都是如下图所示:

在这里插入图片描述 以80~100表示这个范围内数据为最显著的红色,其他范围内的各个色域类似

那么,如果我希望将最右边最红的区域定义为一个字幕,并使这个字母出现在红色的正下方,该如何实现呢?

本质上其实通过定义标签的范围来实现,观察可以发现,如果将100显示为红色的正下方,其实就是在第90的位置,将label设置为100.

描述的有点抽象,这里直接放上结果:

在这里插入图片描述

附上全部代码:

# -*- coding: utf-8 -*- """ Created on Wed Dec 7 10:12:20 2022 @author: jianpu @blog : https://blog.csdn.net/weixin_44237337?spm=1000.2115.3001.5343 @email: [email protected] introduction : keep learning althongh walk slowly """ import cmaps from matplotlib.colors import ListedColormap import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl rgb=( [ 43,67,255], [ 91,130,255], [ 136,178,255], [ 184,218,255], [ 255,255,255], [ 255,255,255], [ 255,190,190], [ 255,142,142], [ 255,97,97], [ 255,49,49], ) rgb=np.array(rgb)/255.0 newcmap=ListedColormap(rgb) clevs = np.linspace(-100,100,11) fig=plt.figure(figsize=(10,10),dpi=150) norm =mpl.colors.Normalize(vmin=-100, vmax=100) ax=fig.add_axes([0,0,0.5,0.05]) fc1=fig.colorbar( mpl.cm.ScalarMappable(norm=norm,cmap=newcmap, ), cax=ax, ticks = clevs, orientation='horizontal', ) ax2=fc1.ax ax2.xaxis.set_ticks_position('top') #将数值刻度移动到上边 ax3=ax2.secondary_xaxis('bottom') #新建ax3,使ax3与ax2完全相同,但是是处于下部 ax3.set_xticks([-90,-70,-50,-30,-10,10,30,50,70,90]) #这里的标签名称可以自定义修改成想要的 ax3.set_xticklabels(['a','b','c','d','e','f','g','h','i','j',],ha="center")


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有