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

article/2025/10/4 17:15:29

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

目录

1、单一作图

2、同时绘制多图并共用 colorbar


1、单一作图

在 matlab 中定义一个 5*5 的矩阵如下:

data = reshape(linspace(1, 25, 25), [5, 5])'

将矩阵 data 直接传入 imagesc( ) 函数即可绘制相应的图像:

imagesc(data);
colorbar;  % colorbar 的作用是生成一个代表颜色值的条状图例

颜色像素块的亮度跟矩阵中值的大小有关,值越大对应的像素块就越亮,反之,值越小相应的像素块就越暗。像素块的颜色风格可以更换,使用以下函数:

colormap(cool);

具体的参数有以下这些:

parula	turbo	hsv	    hot	    cool	spring	summer	
autumn	winter	gray	bone	copper	pink	jet	    
lines	colorcube	prismflag	white

当然也可以自定义,但一般给定的选择就足够用了。

2、同时绘制多图并共用 colorbar

第一种种情况是不共用同一个 colorbar,这样直接使用 subplot(m,n,k) 函数依次创建子图即可:

data = reshape(linspace(1, 25, 25), [5, 5])';%% 创建一个一行两列的子图,子图的顺序是由左到右,由上到下。当前是第一个子图
subplot(1,2,1);   
imagesc(data);
colorbar;
colormap("winter");  % 以最后一个 colormap 的设置为准,不信你试试,这里设置了也没用
ax = gca;   % 全称get current axes(个人猜想),获取当前坐标区的属性,用于后续的设置
ax.FontName = 'kaiti';  % 楷体的拼音,经实验,无所谓大小写。如果是英文,可以设置为 'Times New Roman'
ax.FontSize = 10;  % 10 号字体
subtitle("这是第一个子图的标题"); % 这是子标题的定义方法%% 当前是第二个子图
subplot(1,2,2);
imagesc(data);
colorbar;
colormap("summer");
ax = gca;  
ax.FontName = 'kaiti'; 
ax.FontSize = 10; 
subtitle("这是第二个子图的标题"); % 这是子标题的定义方法%% 这是总标题的定义方法
sgtitle(["这是总标题", "像这样使用字符串数组的方式可以实现标题分行"], ..."FontSize", 15, "Fontname", 'KaiTi'); 

这第二种情况是一张图中的所有子图共用一个 colorbar,应该也是用的最多的吧?(我猜的)。这时就不能使用 subplot(m,n,k) 函数创建子图了,官方提供的方法是使用 tiledlayout(m, n) 函数和 nexttile 设置子图,看字面意思应该就能明白咋用的了,看一下下面的代码意会吧:

data = reshape(linspace(1, 25, 25), [5, 5])';
%% 创建一个一行两列的子图,子图的顺序是由左到右
tiledlayout(1,2);  
%% 当前是第一个子图
nexttile
imagesc(data);
ax = gca;   % 全称get current axes(个人猜想),获取当前坐标区的属性,用于后续的设置
ax.FontName = 'kaiti';  % 楷体的拼音,经实验,无所谓大小写。如果是英文,可以设置为 'Times New Roman'
ax.FontSize = 10;  % 10 号字体
subtitle("这是第一个子图的标题"); % 这是子标题的定义方法%% 当前是第二个子图
nexttile
imagesc(data);
ax = gca;  
ax.FontName = 'kaiti'; 
ax.FontSize = 10; 
subtitle("这是第二个子图的标题"); % 这是子标题的定义方法%% 共用 colorbar
cb = colorbar;
cb.Layout.Tile = 'east';  % 这里不知道啥意思的话可以默念:"上北下南, 左西右东"
%% 这是总标题的定义方法
sgtitle(["这是总标题", "像这样使用字符串数组的方式可以实现标题分行"], ..."FontSize", 15, "Fontname", 'KaiTi'); 


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

相关文章

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;搜索的效率取决于搜索过程中…

默克尔树入门

目录 什么是默克尔树构建默克尔树的过程默克尔树验证的原理参考 什么是默克尔树 默克尔树&#xff08;Merkle tree&#xff09;是一种数据结构&#xff0c;以它的提出者默克尔命名&#xff0c;根据默克尔树的性质也可以叫哈希树&#xff0c;是一种典型的二叉树。 默克尔树由根…

java merkle树,使用Merkle树检测数据不一致(翻译)

背景 Cassandra的逆熵功能使用Merkle树来检测副本之间的数据不一致。 定义 Merkle树是一种哈希树&#xff0c;其中的叶子包含各个数据块的哈希值&#xff0c;父节点包含其各自的子节点的哈希值。它提供了一种有效的方法来查找副本上存储的数据块中的差异&#xff0c;并减少了传…

区块链 — 默克尔树

文章目录 默克尔树生成过程应用场景在区块链中的应用 默克尔树 默克尔树&#xff08;又叫哈希树&#xff09;是一种典型的二叉树结构&#xff0c;有一个根节点、一组中间节点和一组叶节点组成。默克尔树最早由 Merkle Ralf 在 1980 年提出&#xff0c;曾广泛用于文件系统和P2P…

哈希算法的原理以及代码实现

哈希函数&#xff1a; 简单来说就是把红框内的数字根据 一定规律 存放到下方白色的数组中 &#xff08;称为哈希表&#xff09; 这里它的一定规律是 取余法 H&#xff08;key&#xff09;key%p &#xff08;还有其他方法&#xff0c;这里采用的是取余法&#xff09;,p为这个…