当前位置: 首页 > news >正文

【MATLAB基础绘图第16棒】绘制热图(Heatmap)

热图(Heatmap)

热图的主要作用是直观展示重点研究对象的差异情况,多用于经济学与工学差异性分析之中。

heatmap函数创建热图

语法

h=heatmap(tbl,xvar,yvar)
h=heatmap(tbl,xvar,yvar,'ColorVariable',cvar)
h=heatmap(cdata)
h=heatmap(xvalues,yvalues,cdata)
h=heatmap(___,Name,Value)
h=heatmap(parent,___)
说明
h = heatmap(tbl,xvar,yvar) 基于表 tbl 创建一个热图,并返回 HeatmapChart 对象。xvar 输入参数指示沿 x 轴显示的表变量。yvar 输入参数指示沿 y 轴显示的表变量。默认颜色基于计数聚合,这种方法计算每对 x 和 y 值一起出现在表中的总次数。可使用 h 在创建热图之后对其进行修改。
h=heatmap(tbl,xvar,yvar,'ColorVariable',cvar) 使用 cvar 指定的表变量来计算颜色数据。默认的计算方法为均值聚合。
h=heatmap(cdata) 基于矩阵 cdata 创建一个热图。热图上的每个单元格对应 cdata 中的一个值。
h=heatmap(xvalues,yvalues,cdata) 指定沿 x 轴和 y 轴显示的值的标签。
h=heatmap(___,Name,Value) 使用一个或多个名称-值对组参数指定热图的其他选项。请在所有其他输入参数之后指定这些选项。
h = heatmap(parent,___) 在由 parent 指定的图窗、面板或选项卡上创建热图。

案例

案例1:基本绘制

此案例利用Matlab自带的‘heatmap’命令绘制热图。虽然好看,但有一个问题:其标题、坐标轴标题、字体字号等属性无法分开单独设置。

成图如下:
在这里插入图片描述
MATLAB代码如下:

clc
close all
clear
%% 基础设置
pathFigure= '.\Figures\' ;figureUnits = 'centimeters';
figureWidth = 30; 
figureHeight = 20;%% 绘制热图
figure(1) 
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);
% 绘制热图:河东地区各站点干旱年内分布图
XName = ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"];
YName = ["景泰", "皋兰","靖远","榆中","临夏","临洮","华家岭","环县","平凉","西峰镇","玛曲","合作","岷县","武都","天水北道区"];
h = heatmap( XName , YName , SPI1Station ,'FontSize',10);
h.GridVisible = 'off';
% 设置坐标区名字与图的大标题
% h.Title = 'Tiltle';
h.XLabel = '月份';
h.YLabel = '站点';
% 对热图上色—colormap函数
hc = colormap(gca, flipud(hot) );
set(gca,'FontSize',16);   % ,'Fontname', 'Times New Roman'str= strcat(pathFigure, "Fig.2", '.tiff');
print(gcf, '-dtiff', '-r600', str);

案例2:修改热图的属性

热图的图形包括了x轴名称、y轴名称、x和y的数据、颜色、数据标注、图例等属性,可以通过修改热图函数的返回值的句柄设置其属性。
成图如下:(中文字体为宋体;西文字体为Times New Roman)
在这里插入图片描述
MATLAB代码如下:

clc
close all
clear
%% 基础设置
pathFigure= '.\Figures\' ;figureUnits = 'centimeters';
figureWidth = 30; 
figureHeight = 20;figure(2) 
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);
% 绘制热图:河东地区各站点干旱年内分布图
XName = ["1\fontname{宋体}月","2\fontname{宋体}月","3\fontname{宋体}月","4\fontname{宋体}月","5\fontname{宋体}月","6\fontname{宋体}月",..."7\fontname{宋体}月","8\fontname{宋体}月","9\fontname{宋体}月","10\fontname{宋体}月","11\fontname{宋体}月","12\fontname{宋体}月"];
YName = ["\fontname{宋体}景泰", "\fontname{宋体}皋兰","\fontname{宋体}靖远","\fontname{宋体}榆中","\fontname{宋体}临夏","\fontname{宋体}临洮",..."\fontname{宋体}华家岭","\fontname{宋体}环县","\fontname{宋体}平凉","\fontname{宋体}西峰镇","\fontname{宋体}玛曲","\fontname{宋体}合作","\fontname{宋体}岷县","\fontname{宋体}武都","\fontname{宋体}天水北道区"];
h = heatmap( XName , YName , SPI1Station ,'FontSize',10);
h.GridVisible = 'off';
h.FontName='Times New Roman';      % 设置显示的字体
h.FontSize = 14;                                 % 设置显示的字体大小
% 设置坐标区名字与图的大标题
% h.Title = 'Tiltle';
h.XLabel = '\fontname{宋体}月份';
h.YLabel = '\fontname{宋体}站点';
% 对热图上色—colormap函数
hc = colormap(gca, flipud(hot) );
set(gca,'FontSize',16);   % ,'Fontname', 'Times New Roman'str= strcat(pathFigure, "Fig.2", '.tiff');
print(gcf, '-dtiff', '-r600', str);

参考

http://www.lryc.cn/news/131374.html

相关文章:

  • 数据库--SQL关键字的执行顺序
  • 如何优雅地处理Java多线程编程中的共享资源问题,以确保线程安全和高性能?
  • 每天一道leetcode:剑指 Offer 64. 求1+2+…+n(中等递归)
  • 服务器安装centos7踩坑
  • Java | IDEA中 jconsole 不是内部或外部命令,也不是可运行的程序
  • 将Swift Package构建为通用二进制文件 Universal Binary
  • 正则表达式:贪婪与非贪婪模式
  • UVa247 Calling Circles(Floyd warshall算法)
  • Java项目之基于ssm框架的社区生活超市管理系统(附源码)
  • Android 实现录音功能
  • drawio导出矢量图
  • 关于angular router-outlet
  • 设计模式详解-桥接模式
  • 设计模式—— 单一职责原则
  • 嵌入式系统中如何选择RTC电池?
  • 56 | 国内游戏直播竞品分析
  • STM32 CubeMX (第一步Freertos任务管理:创建、删除、挂起、恢复)
  • 0101读写分离测试-jdbc-shardingsphere-中间件
  • sqlite3将词典导入数据库
  • 浏览器 - 事件循环机制详解
  • 析构函数中不应该抛出异常(摘录)
  • Windows定时任务计划无法显示任务程序界面的问题解决
  • 【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
  • Python学习笔记_进阶篇(二)_django知识(一)
  • 【hive】hive中row_number() rank() dense_rank()的用法
  • 【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署
  • 计算实数数组中所有元素的绝对值 numpy.fabs()
  • 深入浅出Pytorch函数——torch.nn.init.orthogonal_
  • ORACLE中UNION、UNION ALL、MINUS、INTERSECT学习
  • 【k8s、云原生】基于metrics-server弹性伸缩