在Matlab中绘制热力网格图的步骤

Matlab做热力图

1 配置环境

将heatmaps文件夹添加到C:\Program Files\Polyspace\R2019a\toolbox

matlab画热力网格图_matlab_02

打开matlab,选择设置路径

matlab画热力网格图_数据_03

选择添加并包含子文件夹

matlab画热力网格图_缩放_04

添加heatmaps文件夹

matlab画热力网格图_matlab_05

点击保存、关闭

matlab画热力网格图_数据_06

在命令窗口输入:help heatmap,出现下面情况,说明环境配置成功。

matlab画热力网格图_缩放_07


加载数据以进行可视化


导入数据集以可视化。数据集包含新英格兰地区之间的电价数据矩阵。

load heatmapData1.


简单的热图


仅生成无标签的热图

heatmap(spreads_small);colormap('jet')1.2.

matlab画热力网格图_缩放_08


轴刻度和标签


通过在列和行上使用标签,可以为x和y标签添的输入。标签可以是数字或字符串的单元格数组。

heatmap(spreads_small, 1:15, labels_small);colormap('jet')1.2.

matlab画热力网格图_缩放_09


可以把x轴上的标签旋转45°以防止重叠。

heatmap(spreads_small, labels_small, labels_small, [], 'TickAngle', 45);colormap('jet')1.2.

matlab画热力网格图_matlab_10

默认情况下,对于较大的热图,不会显示所有刻度。可以使用ShowAllTicks选项强制执行此操作

heatmap(spreads_small, labels_small, labels_small, [], 'TickAngle', 45,'ShowAllTicks', true);colormap('jet')1.2.

matlab画热力网格图_热力图_11

刻度的字体大小可以通过TickFontSize选项控制。可以在热图上添加许多刻度标签时。

heatmap(spreads, labels, labels, [], 'TickAngle', 45,'ShowAllTicks', true, 'TickFontSize', 6);colormap('jet')1.2.

matlab画热力网格图_数据_12


热力图文字标签



可以用文本字符串覆盖热图力图像,使得热力图更具描述性。文本标签可以指定为数字矩阵或字符串单元格数组。

heatmap(spreads_small, labels_small, labels_small, '$%0.2f', 'TickAngle', 45);colormap('jet')1.2.

matlab画热力网格图_热力图_13

完全不同的数据矩阵可以显示为原始热图顶部的文本标签,使您可以覆盖另一个数据集

clabel = arrayfun(@(x){sprintf('%0.2f',x)}, c_small);heatmap(spreads_small, labels_small, labels_small, clabel, 'TickAngle', 45);colormap('jet')1.2.3.

matlab画热力网格图_文本标签_14

文本标签的属性包括FontSize和TextColor。也可以将TextColor指定为字符串“ xor”,在这种情况下,将自动为每个标签选择一种颜色以与图像上的颜色形成对比。

heatmap(spreads_small, labels_small, labels_small, '$%0.2f', 'TickAngle', 45, 'FontSize', 6, 'TextColor', 'w');colormap('jet')1.2.

matlab画热力网格图_文本标签_15


缩放,平移和数据光标



通过热力图生成的热图是交互式的,您可以缩放和平移以浏览可视化。刻度标签将自动响应缩放和平移事件而更新。还支持数据游标。数据光标中显示的文本来自用于在热图图像上显示数据的文本标签。


更改颜色图



默认情况下,热力图使用创建它们的图形的颜色图。因此,更改图形颜色图将更改热力图。

heatmap(spreads);snapnowcolormap coolsnapnow1.2.3.4.

matlab画热力网格图_数据_16

matlab画热力网格图_热力图_17

颜色值为0显示为白色,将正值和负值显示为绿色或红色阴影。

heatmap(spreads_small, [], [], '%0.2f', 'Colormap', 'money', ...        'Colorbar', true);1.2.

matlab画热力网格图_热力图_18

使用ColorLevels选项可以增加或减少颜色图中不同颜色的数量

heatmap(spreads_small, [], [], '%0.2f', 'Colormap', 'money','Colorbar', true, 'ColorLevels', 5);1.

matlab画热力网格图_matlab_19

颜色图也可以按对数比例构建。如果矩阵值未均匀分布。使用对数刻度色图将突出显示数据集中较小值的变化

heatmap(spreads_small, [], [], '%0.2f', 'TextColor', 'w', 'Colormap', 'copper', 'Colorbar', true);snapnowheatmap(spreads_small, [], [], '%0.2f', 'TextColor', 'w', 'Colormap', 'copper', 'Colorbar', true, 'UseLogColormap', true);1.2.3.

matlab画热力网格图_文本标签_20

matlab画热力网格图_matlab_21


作多个热力图



在热力图默认情况下,它们将共享图形的颜色条。如果将UseFigureColormap选项设置为0或false,则可以使每个热力图有不同的颜色条。

subplot(2,1,1);heatmap(spreads_small, [], [], '%0.2f', 'Colormap', 'money', ...        'UseFigureColormap', false, 'Colorbar', true);title('Money Colormap');subplot(2,1,2);heatmap(spreads_small, [], [], '%0.2f', 'Colormap', 'copper', ...        'UseFigureColormap', false, 'Colorbar', true, 'TextColor', 'w');title('Copper Colormap');1.2.3.4.5.6.7.8.9.

matlab画热力网格图_热力图_22


强制色阶



热力图的常见用法是利用颜色比较识别两个矩阵或表格变化或差异。默认情况下,heatmap颜色以使矩阵中的最小和最大数据值映射为最低和最高颜色。当需要一致的数据到颜色映射的热力图时,通常不希望这样。为了帮助进行此工作,heatmap提供了两个输入MinColorValue和MaxColorValue,它们控制映射到最低和最高色阶的数据的最小值和最大值。在这里,我们使用这些来确保两个热力图之间具有可比的颜色。

以下两个图是具有默认颜色级别的两个矩阵的热图。请注意,它们之间的颜色不一致。

x = spreads(1:10,1:10);y = x/2;y([58 59 65 66]) = y([58 59 65 66])*2;heatmap(x,[],[],'%0.2f','ColorMap', @cool, 'Colorbar',true);snapnow;heatmap(y,[],[],'%0.2f','ColorMap', @cool, 'Colorbar',true);1.2.3.4.5.6.

matlab画热力网格图_缩放_23

matlab画热力网格图_热力图_24


这两个图显示了相同的热图和一致的颜色级别。mincolorvalue和maxcolorvalue已设置为两个矩阵的最小值和最大值。

mincolor = min([x(:);y(:)]);maxcolor = max([x(:);y(:)]);heatmap(x,[],[],'%0.2f','ColorMap', @cool, 'Colorbar',true, ...    'MinColorValue', mincolor, 'MaxColorValue', maxcolor);snapnowheatmap(y,[],[],'%0.2f','ColorMap', @cool, 'Colorbar',true, ...    'MinColorValue', mincolor, 'MaxColorValue', maxcolor);1.2.3.4.5.6.7.8.9.

matlab画热力网格图_热力图_25

matlab画热力网格图_matlab_26


缺失值


允许使用矩阵中的NaN,但默认情况下会将其映射到最低的颜色值。使用​NaNColor​选项,您可以明确指定NaN或缺失值应采用的颜色。在下面的热图中,将它们设置为黑色,以将其与包含低值的其他元素区分开。

heatmap(c,[],[],[],'ColorMap', @cool, 'NaNColor', [0 0 0], 'colorbar', true);1.

matlab画热力网格图_文本标签_27


彩条


如上所示,可以使用“ ​颜色条​​选项将颜色条添加到图形中。颜色条的标签将自动使用热图图像上文本标签的格式进行格式化。请注意下图中颜色栏上的$符号。

heatmap(spreads, [], [], '$%0.2f', 'Colormap', 'money', 'FontSize', 2, 'Colorbar', true);1.

matlab画热力网格图_数据_28

colorbar选项的值可以是简单的true或false,在这种情况下将绘制默认的colorbar,或者它可以包含colorbar命令的属性值对的单元格数组。

heatmap(spreads, [], [], '$%0.2f', 'Colormap', 'money',  'FontSize', 2, 'Colorbar', {'SouthOutside'});1.

matlab画热力网格图_热力图_29


网格线


可以使用​GridLines​选项添加网格线,该选项是虚线的行规范,

heatmap(spreads_small, labels_small, labels_small, '%0.2f', 'TickAngle', 45, 'GridLines', ':');1.

matlab画热力网格图_数据_30

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空