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

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

前言



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


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


4bafd4c160fc42ce9a6409c87dbc4c14.png


以80~100表示这个范围内数据为最显著的红色,其他范围内的各个色域类似


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


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


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


ffb2d1c7b19e4678b256f5a473222d39.png


附上全部代码:


# -*- 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: 211311040008@hhu.edu.cn
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") 
相关文章
|
7天前
|
XML 存储 数据处理
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
71 0
|
7天前
|
机器学习/深度学习 存储 计算机视觉
python深度学习图像处理CSV文件分类标签图片到各个文件夹
python深度学习图像处理CSV文件分类标签图片到各个文件夹
86 0
|
7天前
|
数据可视化 Python
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
41 0
|
9月前
|
Python
Python生成ArUco标签并保存在本地
写一个Python程序,能够生成指定字典的aruco标签图片,并保存在本地
152 0
|
2天前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
7天前
|
机器学习/深度学习 存储 自然语言处理
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类
|
7天前
|
XML JavaScript 数据格式
python - bs4提取XML/HTML中某个标签下的属性
python - bs4提取XML/HTML中某个标签下的属性
30 0
|
7天前
|
Python Windows
python图形页面:tkinter文字标签
python图形页面:tkinter文字标签
python 绘图中的一些小技巧(显示中文标签,显示负号,共用x轴,设置轴的属性。。。)
python 绘图中的一些小技巧(显示中文标签,显示负号,共用x轴,设置轴的属性。。。)
|
11月前
|
Python
Python应用专题 | 13:将标签转为onehot形式
在做文本分类的时候,常常需要将标签转为one-hot的数值形式,本文主要从代码的角度介绍该操作。