Matlab做热力图

内容

  • 环境配置
  • 加载数据以进行可视化
  • 简单的热图】
  • 轴刻度和标签
  • 热图文字标签
  • 缩放,平移和数据光标
  • 更改颜色图
  • 图上有多个热图
  • 强制色阶
  • 缺失值
  • 彩条
  • 网格线

1 配置环境

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

打开matlab,选择设置路径

选择添加并包含子文件夹

添加heatmaps文件夹

点击保存、关闭

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

加载数据以进行可视化

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

load heatmapData

简单的热图

仅生成无标签的热图

heatmap(spreads_small);
colormap('jet')

轴刻度和标签

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

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

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

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

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

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

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

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

热力图文字标签

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

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

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

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

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

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

缩放,平移和数据光标

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

更改颜色图

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

heatmap(spreads);
snapnow
colormap cool
snapnow

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

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

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

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

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

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

作多个热力图

在热力图默认情况下,它们将共享图形的颜色条。如果将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');

强制色阶

热力图的常见用法是利用颜色比较识别两个矩阵或表格变化或差异。默认情况下,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);

这两个图显示了相同的热图和一致的颜色级别。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);

缺失值

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

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

彩条

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

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

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

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

网格线

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

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

heatmaps文件链接:(失效联系:2377389590@qq.com)

链接:https://pan.baidu.com/s/1_awTBgNnh_vfL8R2HnYgRQ 
提取码:fp5e

群资料

matlab画热力网格图相关推荐

  1. MATLAB 画颜色网格图

    作图代码 clear; clc; %%%%%%%%画网格%%%%%%%% [m,n]=meshgrid(0:100);%100*100的网格 %%%%%%%%作图%%%%%%%% A=load('D: ...

  2. 已知坐标用matlab画图,已知45个点X Y Z的坐标值已知,如何用matlab画出网格图,每......

    相邻点连成线 x1=[94.386041 97.620596 100.690028 103.691318 106.642137 94.418517 97.663183 100.748096 103.7 ...

  3. 用matlab做一个有刻度的网格,已知45个点X Y Z的坐标值已知,如何用matlab画出网格图,另外每个小方格里带颜色 - 程序语言 - 小木虫 - 学术 科研 互动社区...

    相邻点连成线 x1=[94.386041 97.620596 100.690028 103.691318 106.642137 94.418517 97.663183 100.748096 103.7 ...

  4. python 可视化 ploty 画3dmesh网格图

    python 可视化 plotly 画3dmesh网格图 最近在工作中遇到python 打印可视化3D图.需求是根据以下CSV文件黄色高亮的三列打印3D立体网格图,尝试过用matplotlib打印出来 ...

  5. Matlab 二维网格图pcolor和imagesc区别

    Matlab 二维网格图pcolor和imagesc区别 在速度或者衰减层析成像反演之后会得到地下介质每个网格点的速度/衰减值,在进行呈现的时候可以使用maltab的pcolor和imagesc进行二 ...

  6. 用matlab画饼状图和相量图

    用matlab画饼状图和相量图 subplot(1,2,1); pie([2347,1827,2043,3025]); %pie表示画饼状图 title('pie chart'); legend('q ...

  7. 数学建模中如何用 matlab画漂亮的图(一)

    数学建模中如何用 matlab画漂亮的图(二维图形) 1 plot绘图命令*** 1.1 plot(x) 当x为实向量时,plot(x)绘制出的曲线,横坐标为该向量的下表,纵坐标为每一个下表位置所对应 ...

  8. SuperMap热力网格图

    SuperMap热力网格图 开发工具与关键技术:SQL Server.Visual Studio.SuperMap .C#.GIS 作者:刘东标 撰写时间:2019-02-23 热力图是通过颜色分布, ...

  9. matlab画动物轮廓图,MATLAB一维插值的应用实例—画左右手的轮廓图

    问题提出 画你自己的手的形状,在MATLAB中输入 figure('position',get(0,'screensize')) axes('position',[0 0 1 1]) [x,y]=gi ...

  10. Matlab画圆方向图,如何在matlab里画天线的立体方向图?

    如何在matlab里画天线的立体方向图?有没有具体的函数? 有的,你看下一般的matlab教程里都有着方面的介绍,查一下就可以了 有数据,Matlab可以画 归根到底,画极坐标方向图是坐标变换的问题. ...

最新文章

  1. pytorch 1.9.0 backward函数解释以及报错(RuntimeError: grad can be implicitly created only for scalar outputs)
  2. 【Python】嫦娥探月数据(PDS)处理与可视化
  3. opencv图像处理9-图像金字塔
  4. halcon/c++接口基础 之 构造函数与Halcon算子
  5. Ansible的简单使用
  6. Web测试中新增修改功能测试
  7. opencv舌头监测模型+keras神经网络(LeNet)
  8. SwitchHosts 没有权限operation not permitted解决方案
  9. 华南理工大学计算机学院创新班,高校纷推创新班揽生源 逐步淘汰冷门专业
  10. qq代理服务器传输文件失败,qq接收文件时显示传输文件失败?
  11. Java中的日期和时间
  12. OracleRAC基本概念及入门
  13. 帆软中的日期函数,当月第一天,当年第一天,当月最后一天等
  14. Python中三种表示NA的方式
  15. 数美科技的智能文本审核能为社交行业带来什么价值 | 数美人工智能研究院
  16. Erlang 下载安装
  17. shell脚本:exit和return
  18. 走进C++程序世界-----指针(动态申请空间和释放空间)
  19. 单小说下载php,PHP 单TXT下载和多个TXT文件打包下载 同时
  20. php软件测试课程资源共享网站

热门文章

  1. oracle删除目录 数据库文件,数据库生成一个app文件夹为什么删不掉
  2. JavaScript-ECMAScript、BOM、DOM
  3. TokenInsight 对话首席——分片技术的现状与未来(下)
  4. ARM的开发步骤:让你思路更清晰
  5. Could not load file or assembly 'XXXXXXXX' or one of its dependencies. 试图加载格式不正确的程
  6. 卓越郭朝晖:垂直类B2C网站可能昙花一现
  7. PS4 eye camera v2 ROS测试
  8. 【转】Oracle知识点汇总
  9. 阿里立秋:淘宝如何做智能化UI测试?
  10. FPGA vs ASIC