Matlab进阶绘图第17期—气泡热图

news/2024/11/15 1:41:30/

气泡热图是一种特殊的热图(Heatmap)。

与传统热图相比,气泡热图利用不同颜色、不同大小的圆形表示数据的大小,可以更加直观地对矩阵数据进行可视化表达

本文使用自制的bubbleheatmap小工具进行气泡热图的绘制,先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式


1. 数据准备

此部分主要是取原始数据

% 读取数据load data.mat% 数据矩阵Z = data;

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的SCI权威配色库

%% 颜色定义map = TheColor('sci',2064);% map = flipud(map);

3. 气泡热图绘制

调用‘bubbleheatmap’命令,绘制初始气泡热图

bubbleheatmap(Z,30,600)hTitle = title('Bubble Heatmap Plot');hXLabel = xlabel('K (w)');hYLabel = ylabel('Samples');

其中,30表示最小气泡的面积为30平方磅,600表示最大气泡的面积为600平方磅

4. 细节优化

为了插图的美观,将初始气泡热图赋上之前选择的颜色并添加颜色条

% 赋色colormap(map)colorbar

然后,对坐标轴细节等进行美化:

% 坐标轴美化axis equal tightset(gca, 'Box', 'off', ...                                % 边框         'Layer','bottom',...                             % 图层         'LineWidth',1,...                                % 线宽         'XGrid', 'off', 'YGrid', 'off', ...              % 网格         'TickDir', 'out', 'TickLength', [0 0], ...       % 刻度         'XMinorTick', 'off', 'YMinorTick', 'off', ...    % 小刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1],...  % 坐标轴颜色         'xtick',1:10,...                                 % 坐标轴刻度         'xticklabels',1:10,...         'ytick',1:10,...         'yticklabels',1:10)% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 10)set([hXLabel, hYLabel], 'FontSize', 11, 'FontName', 'Arial')set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])

设置完毕后,以期刊所需分辨率、格式输出图片。

%% 图片输出figW = figureWidth;figH = figureHeight;set(figureHandle,'PaperUnits',figureUnits);set(figureHandle,'PaperPosition',[0 0 figW figH]);fileout = 'test';print(figureHandle,[fileout,'.png'],'-r300','-dpng');

也可以尝试其它配色:

以上。


http://www.ppmy.cn/news/46887.html

相关文章

赋值法写基础解系中解向量

赋值法写基础解系中解向量 (一)背景引入 通常解方程组时,将系数矩阵化为行阶梯型,进而可化为行最简型 (说一嘴:行最简型是指阶梯口元素全是1,该1所在列全其余全为0;广义行阶梯的阶梯…

5G NR调制阶数与EVM关系以及对系统SNR要求分析

移动通信技术对数据传输速率要求越来越高。一种提高传输速率的思路是使用更高阶的QAM 调制方式,例如5G NR 的256QAM PDSCH,微波的1024QAM,2048QAM和4096QAM 调制。更高阶的QAM 调制方式对系统也提出了更高的要求。例如某个系统的EVM 测试结果…

【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个文件占用了内存太大了。 使用例子如下,用JAVA 运行Sort 1,…

YOLOv8详解代码实战,附有效果图

YOLOv8架构 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,鉴于Yolov5的良好表现,Yolov8在还没有开源时就收到了用户的广泛关注。yolov8的整体架构如下&…

tmux使用方法

tmux使用指南:比screen好用n倍! - 知乎 当你开启一个session的时候会默认开启一个window,这个截图就是一个window,而这个window可以拆成很多分subwindow,在这里就是:左上角Asubwindow,左下角Bsu…

UE4 回放系统升级到UE5之后的代码报错问题解决

关键词: UE4 回放系统 升级 UE5 报错 DemoNetDriver GetDemoCurrentTime GetDemoTotalTime 背景 照着网上教的UE4的回放系统,也叫重播系统,英文Replay。做完了,测试运行正常,可升级到UE5却报了一堆 WorldSetting 和 …

Java数据结构与算法----动态规划(背包篇)

1. 0/1背包 1.1.算法思路 0/1背包是动态规划、背包问题中最经典的问题啦!它主要的问题是: 给定n种物品、这n种物品的重量分别是,价值分别是 ,而你有一个容量为C的背包,请问如何求出所能拿的最大价值呢? …

【Java EE】-网络编程(一) 网络初识

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 主要内容:单机、局域网、广域网、交换机、路由器。IP地址,端口号,协议,五元组。 协议分层,OSI七层网络模型…