python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条

article/2025/10/4 11:13:40

文章目录

    • 自定义colorbar(draw colorbar without any mapple/plot)
    • contourf函数
    • 为所有子图添加一个色带
    • 推荐色带与自定义色带


PS: 传送门——自定义Colorbars教程

自定义colorbar(draw colorbar without any mapple/plot)

参考:Customized Colorbars Tutorial
   api example code: colorbar_only.py
  自定义colorbar可以画出任何自己想要的colorbar,自由自在、不受约束,不依赖于任何已有的图(plot/mappable)。这里使用的是mpl.colorbar.ColorbarBase类,而colorbar类必须依赖于已有的图。
  关于该类的参数如下 (该类参数描述没找到,部分参数的取值可参考colorbar中的描述):

class matplotlib.colorbar.ColorbarBase(ax, cmap=None, norm=None, alpha=None, values=None, boundaries=None, orientation=‘vertical’, ticklocation=‘auto’, extend=‘neither’, spacing=‘uniform’, ticks=None, format=None, drawedges=False, filled=True, extendfrac=None, extendrect=False, label=’’)[source]
参数简单描述

ax :可用于设置colorbar的位置、长、宽
norm :用于规范化–设置颜色条最大最小值
cmap:颜色(可参考本篇博文的最后部分——推荐色带与自定义色带)
boundaries:要想使用extend,在norm之外,必须要有两个额外的boundaries
orientation:colorbar方向,躺平or垂直
extend:延伸方向(在norm之外colorbar可延伸)
ticks:自定义各段的tick(记号)

下面是一个例子,可以自己试试调整各项参数:

import numpy as np
import pylab as plt
import matplotlib as mplif __name__ == '__main__':fig = plt.figure(figsize=(3, 8))cmap = mpl.cm.Spectral_rax3 = fig.add_axes([0.3, 0.2, 0.2, 0.5]) # 四个参数分别是左、下、宽、长norm = mpl.colors.Normalize(vmin=1.3, vmax=2.5)bounds = [ round(elem, 2) for elem in np.linspace(1.3, 2.5, 14)] # cb3 = mpl.colorbar.ColorbarBase(ax3, cmap=cmap,norm=norm,# to use 'extend', you must# specify two extra boundaries:boundaries= [1.2] + bounds + [2.6],extend='both',ticks=bounds,  # optionalspacing='proportional',orientation='vertical')plt.show()

contourf函数

  contour和contourf分别绘制轮廓线和填充轮廓线。两个版本的函数签名和返回值是相同的。关于两者画图的一些实例可以参阅python matplotlib contour画等高线图,以及matplotlib中文文档

    contourf([X, Y,] Z, [levels], **kwargs) # [ ]表示该参数是可选的——可以给定也可以不给定

contourf中的基本参数:

X, Y : array-like, optional

  contourf参数中X和Y都必须是二维的,形状与Z相同(例如,通过numpy.meshgrid创建);或者都必须是一维的,这样len(X) == M是Z中的列数,len(Y) == N是Z中的行数。
  如果没有给定,则假设它们是整数索引,即X = range(M), Y = range(N)。

Z : array-like(N, M)

绘制轮廓线的高度值。

levels : int or array-like, optional

确定等高线/区域的数量和位置。
如果是int n,则使用n个数据间隔;即画n+1条等高线。水平高度是自动选择的。
如果类似数组,则在指定的级别上绘制等高线。这些值必须是递增的。


为所有子图添加一个色带

参考:Matplotlib 2 Subplots, 1 Colorbar
在有图的情况下,为所有子图添加一个colorbar:

import numpy as np
import matplotlib.pyplot as pltfig, axes = plt.subplots(nrows=2, ncols=2)
for ax in axes.flat:im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(im, cax=cbar_ax)plt.show()

推荐色带与自定义色带

  在画图的时候,可以用推荐色带。在Contourf 与记录颜色刻度中,发现contourf中有cmap参数,cmap即是色带。cmap的值可以参考Colormap reference。
  下面这段代码来自Contourf 与记录颜色刻度

cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.PuBu_r) # PuBu_r是PuBu色带的倒转
cbar = fig.colorbar(cs)

  其中cmap就是使用matplotlib提供的色带,如果要自己制定色带可以用参数colors如下:

# Colors是一些自选颜色列表
Colors=('#DDDDFF','#7D7DFF','#0000C6','#000079','#CEFFCE','#28FF28','#007500','#FFFF93','#8C8C00','#FFB5B5','#FF0000','#CE0000','#750000')
cs=m.contourf(xi, yi, z, colors=Colors, levels=levels, extend='both')  # 这里m是一个basemap实例

  在cmap中提供了一些默认色带:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/jFbx2qWZ.shtml

相关文章

Matlab自制Colorbar(一)

目录 前言 一、寻找一张好看的配色图 二、保存待制作的Colorbar 三、利用代码读取并制作ColorMap 四、读入ColorMap画图 前言 在我们的日常科研生活中,能够用一张让人眼前一亮的图给同行展示自己的成果是非常重要的。而且,往往越高端的期刊对作图的要求也…

python colorbar设置label标签位置

colorbar简单设置方法 关于python中使用colorbar的方法已经有比较好的博文介绍,简单列举个人感觉比较好两个 colorbar方向 https://blog.csdn.net/weixin_43257735/article/details/121831188 colorbar颜色 https://blog.csdn.net/liuchengzimozigreat/article/det…

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

前言 python实现colorbar标签的多样化显示 大部分文献中colorbar的色标都是如下图所示: 以80~100表示这个范围内数据为最显著的红色,其他范围内的各个色域类似 那么,如果我希望将最右边最红的区域定义为一个字幕,并使这个字母出…

MATLAB 矩阵数据可视化imagesc 以及 如何多图共用一个 colorbar

当遇到需要查看一个二维矩阵数据中值的大小分布情况时可以使用 MATLAB 把矩阵以图像的形式展现出来,这样更直观。MATLAB 的可视化函数之一是 imagesc( ),还有其他的方法,这里只介绍下 imagesc。 目录 1、单一作图 2、同时绘制多图并共用 c…

python 调节colorbar的大小,以及对colorbar的细节调节

参考链接1 这个很nice,对colorbar的调节很到位 添加colorbar的标题

matplotlib 配色之 colorbar 模块详解

matplotlib.colorbar 模块详解 引子 上一篇我们围绕colormap颜色映射,详细介绍了matplotlib.colors 和 matplotlib.cm模块。 使用matplotlib.colors模块可以完成大多数常见的任务。似乎很少需要直接使用matplotlib.cm模块。我们继续使用上一篇最后的例子来看看 m…

如何在matlab中设置colorbar

colorbar是matlab插值填色图的标尺,设置上下限和设置颜色是作图中基础的能力。 例如这张uha图,首先使用函数caxis([-1.2,2.2])编辑colorbar上下限,打开后右键颜色编辑器选择心怡的颜色。然后用下面的代码存储这种配色方式方便下次使用&#x…

matplotlib画图使用python可视化colorbar工具自定义颜色

python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without any mapple/plot) 自定义colorbar可以画出任何自己想要的colorbar,自由自在、不受约束,不依赖于任何已有的图(plot/mappable)。这里使用的是mp…

matplotlib 合理设置colorbar和子图的对应关系

matplotlib 合理设置colorbar和子图的对应关系 文章目录 matplotlib 合理设置colorbar和子图的对应关系1. 介绍2 plt.contourf ()2.1 错误示范2.2 使用 norm实现颜色和数值之间的对应关系2.3 只显示最后一个的colorbar2.4 使用 levels 参数设置 3. 使用plt.imshow()4 单独设置c…

matlab关于colorbar的整理(绘制不等间距colorbar, colorbar的大小位置调节, colorbar加单位等)

matlab关于colorbar的整理(绘制不等间距colorbar, colorbar的大小位置调节等 1. 绘制不等间距colorbar2. colorbar的大小位置调节3. 更改colorbar上的刻度、给colorbar加单位 对matlab关于colorbar的一些小细节进行整理,希望对一些人能够有所帮助~ 1. 绘制不等间距c…

matlab中的colorbar用法(显示色阶的颜色栏)

原文 matlab画平面分布图时colorbar的设置是非常重要的,好的colorbar不仅使图像更美观,而且能够使人更容易捕捉图上传递的信息。用过matlab的同学都知道matlab默认的colormap是jet, 也就是你画完图后输入“colorbar” 它所显示出来的颜色。此外&#xff…

Matlab的图像操作——colorbar的各项细节操作

最近在论文中用matlab生成高度场,网上搜了很多,自己做一个小小的总结。 首先,如果想在生成的图片中加上colorbar,有两种方式: 1:在生成的Figure图像的菜单栏: Insert—Colorbar, 或者单击上方快捷区添加colorbar,见下图: 2:命令行直接写上 colorbar; 如果想随意指定…

Matplotlib 系列:colorbar 的设置

转载于:Matplotlib 系列:colorbar 的设置 该文为我很及时的解决了我的烦恼,再次向作者致意~ 作者一直在持续更新python系列,请支持原作者,文章来源:炸鸡人博客 0. 前言 承接 Matplotlib 系列&#xff1a…

Chrome谷歌浏览器,清除css或js文件缓存的方法

在写网站首页界面的时候&#xff0c;css文件中给新建的<div>增加了class类的样式&#xff0c;但是无论怎样刷新都没有这个样式的效果。 F12打开开发模式&#xff0c;对比这个<div>与其他的区别&#xff0c;发现右下角的尺寸图中没有position的值&#xff0c;而pos…

浏览器-清理页面中js的缓存

【问题分析】 修改完 js文件中的代码后&#xff0c;页面刷新好几次并没有重新加载 js的文件&#xff0c;开始以为是文件设置没有修改成功&#xff0c;后来想到应该是浏览器对于 js文件的缓存机制引起的。 【解决方案】 清理浏览器的缓存 1.按“F12” 或者 右键单击页面“检查”…

js 浏览器缓存机制

什么是浏览器缓存 Web缓存是指一个Web资源&#xff08;如html页面&#xff0c;图片&#xff0c;js&#xff0c;数据等&#xff09;存在于Web服务器和客户端&#xff08;浏览器&#xff09;之间的副本。缓存会根据进来的请求保存输出内容的副本&#xff1b;当下一个请求来到的时…

哈希表和红黑树

哈希表 哈希表顾名思义是一张表&#xff0c;可以用它来存储键值对这种对应的数据&#xff0c;大家都知道&#xff0c;哈希表的查找速度很快&#xff0c;时间复杂度伪O(1)&#xff0c;那么它的查找速度为什么很快呢&#xff1f;   实际上&#xff0c;哈希表将键值变为数组的下…

3.1 哈希算法

哈希算法在区块链系统中的应用很广泛&#xff1a;比特币使用哈希算法通过公钥计算出了钱包地址、区块头以及交易事务的哈希值&#xff0c;梅克尔树结构本身就是一棵哈希树&#xff0c;就连 挖矿算法都是使用的哈希值难度匹配&#xff1b;以太坊中的挖矿计算也使用了哈希算法&am…

高效的搜索方式:哈希

前言 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没有对应的关系&#xff0c;因此在查找一个元素时&#xff0c;必须要经过关键码的多次比较。顺序结构查找时间复杂度为O(N)&#xff0c;平衡树查找时间复杂度为O(logN)&#xff0c;搜索的效率取决于搜索过程中…