Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >看完这篇,还有你不会画的热力图吗?

看完这篇,还有你不会画的热力图吗?

作者头像
巴山学长
发布于 2019-10-22 07:56:01
发布于 2019-10-22 07:56:01
5.7K07
代码可运行
举报
文章被收录于专栏:巴山学长巴山学长
运行总次数:7
代码可运行
之前有不少小伙伴在公众号里问怎么绘制热力图,今天就给大家说道说道。热力图(Heat Map),最初的定义是指一个以颜色变化来显示数据的矩阵,逐步演化成为用颜色变化来表征某种数据经过降维处理后的变化情况。热力图在各行各业都有着广泛地应用,比如地图热力图、网页/APP热力图以及业务数据热力图等。

基于以上概念,不难理解,绘制热力图所需要的数据往往是3维或者更高维度的,下面给出三维的两种常见的数据样本格式:

格式一、点型数据,即知道三维空间的若干个数据点(x,y,z),其中z为待表征量:

格式二、网格型数据,网格型数据本质上还是点型数据,只是在样本数据预处理时有细微区别,同样z为待表征量:

清楚了样本数据格式后,以人口密度热力图来说明热力图的制作原理,下图是从腾讯位置大数据(heat.qq.com)上截取截取的北京市朝阳区欢乐谷2019年10月18日17:00的人口密度图。

为了绘制上面一张图,首先要获取腾讯地图使用者的位置(经度x, 纬度y),统计规定时间内在某个位置区域使用腾讯地图的人数,将统计的人数除以位置区域的面积即可得到该区的人口密度z。现在数据点(x,y,z)均已获取,不过数据离散性很大。如果只是单纯地绘制所得到的数据,那将是一个个不同颜色的离散点。为了最大化利用获取的数据,使得更具有宏观参考价值,对获取的数据采用数学处理方法进行数据扩充是很有必要的,扩充之后就能实现全域观察,最后形成了上图。

通过上面的简述,相信小伙伴们对热力图的绘制原理应该有所了解了吧。要在二维空间里绘制三维数据,有没有什么办法呢?答案是肯定的,那就是把第三维用另外一种形式来表征,而颜色就是最合适的候选者,将第三维数据与颜色值一一对应,这样就可以在二维空间完成三维数据的绘制。

下面以第一种样本数据格式来演示热力图的绘制:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clc;clear;close all;
% 定义点(x,y,z)
x = randn(50,1);
xmax = max(x);
xmin = min(x);
y = randn(50,1);
ymax = max(y);
ymin = min(y);
z = exp(sin(x.^2)) + exp(cos(y.^2));
N = 500; % 每个维度的数据点数
% 网格化x,y二维空间
[X,Y] = meshgrid(linspace(xmin,xmax,N),linspace(ymin,ymax,N));
% 采用插值法扩展数据,可用方法有'linear'(default)|'nearest'|'natural'|'cubic'|'v4'|
Z = griddata(x,y,z,X,Y,'v4');
%% 等高线法
figure('NumberTitle','off','Name','等高线法','Color','w','MenuBar','none','ToolBar','none');
contourf(X,Y,Z,N, 'LineColor','none');
colormap('jet');
colorbar;
axis off;
%% 投影图法
figure('NumberTitle','off','Name','投影图法','Color','w','MenuBar','none','ToolBar','none');
surf(X,Y,Z,'LineStyle','none');
xlim([min(X(:)) max(X(:))]);
ylim([min(Y(:)) max(Y(:))]);
axis off;
colormap('jet');
colorbar;
shading interp;
view(0,90);
%% imagesc法
figure('NumberTitle','off','Name','imagesc法','Color','w','MenuBar','none','ToolBar','none');
% 因为图像坐标和笛卡尔坐标起始位置不一样,需要上下翻转
imagesc(flipud(Z));
colormap('jet');
colorbar;
axis off;
%% pcolor法
figure('NumberTitle','off','Name','pcolor法','Color','w','MenuBar','none','ToolBar','none');
pcolor(X,Y,Z);
colormap('jet');
colorbar;
shading interp;
axis off;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数学建模番外篇6:二维/三维热力图绘制(matlab)
虽然PPT可以绘制大多数的图像,但对于这类图像绘制,用PPT则会有些吃力,而在matlab中则能够比较方便的解决,
zstar
2022/06/14
3.7K0
数学建模番外篇6:二维/三维热力图绘制(matlab)
matlab绘制二维、三维云图
二维云图:要绘制二维云图,您可以使用scatter函数。这个函数可以根据给定的数据点在二维平面上绘制散点图,并可以使用不同的颜色和大小来表示每个数据点的属性。
用户9925864
2023/09/05
2.1K0
matlab绘制二维、三维云图
数据可视化:浅谈热力图如何在前端实现
当我们需要用更直观有效的形式来展现各类大数据信息时,热力图无疑是一种很好的方式。作为一种密度图,热力图一般使用具备显著颜色差异的方式来呈现数据效果,热力图中亮色一般代表事件发生频率较高或事物分布密度较大,暗色则反之。值得一提的是,热力图最终效果常常优于离散点的直接显示,可以在二维平面或者地图上直观地展现空间数据的疏密程度或频率高低。
个推君
2019/03/12
3.2K0
数据可视化:浅谈热力图如何在前端实现
12个最常用的matplotlib图例 !!
折线图(Line Plot):用于显示数据随时间或其他连续变量的变化趋势。在实际项目中,可以用于可视化模型性能随着训练迭代次数的变化。
JOYCE_Leo16
2024/03/19
7980
12个最常用的matplotlib图例 !!
Python数据可视化 热力图
Matplotlib是Python著名的2D绘图库,该库仿造Matlab提供了一整套相似的绘图函数,用于绘图和绘表,是强大的数据可视化工具和做图库,且绘制出的图形美观。
叶庭云
2020/09/17
7K0
Python数据可视化  热力图
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是要奋发努力,拼搏上进,学好技术,才能师夷长技以制夷,为中华之崛起而读书!
演化计算与人工智能
2020/08/14
2.8K0
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
Matlab绘图方法整理(超完整版)
二维图像是我们在学习过程中经常会接触到的图像,比如在做数学题目时随手画出的一个正弦曲线,这个图像往往是我们根据它的函数做出来的,事实确是这样,在我们学习过程中画出来的每一个图像几乎都是函数,反过来说,每一个函数都对应着它自己的图像,我们能画出来的二维图像往往是一个一元函数即二元方程,在Matlab中做二维图像也是这样,我们根据一个函数来画出它的图像,不过要注意的一点是,在Matlab画图的过程中,它并不认识你给出的那个函数,它要做的仅仅是把你给出的函数上的点连成线而已。
全栈程序员站长
2022/09/07
2.6K0
Matlab绘图方法整理(超完整版)
matlab画三维图形_matlab的三维函数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
1.3K0
matlab画三维图形_matlab的三维函数
matlab的三维绘图和四维绘图「建议收藏」
光照是利用方向官员照亮物体的技术,这项技术能使表面微妙的差异更容易看到,光照也能用来对三维的图像增加现实感。
全栈程序员站长
2022/11/10
6.8K0
matlab的三维绘图和四维绘图「建议收藏」
matlab流场可视化后处理「建议收藏」
2020.04.01 更新,添加了对新文章的引用 2021.04 更新,添加了Volume Viewer APP的介绍。把网址改成了超链接形式。
全栈程序员站长
2022/11/15
2.2K0
matlab流场可视化后处理「建议收藏」
【STM32H7的DSP教程】第4章 Matlab简易使用之脚本文件
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第4章   Matlab简易使用之脚本文件 本期教程主要是讲解Mat
Simon223
2020/04/03
6140
【STM32H7的DSP教程】第4章   Matlab简易使用之脚本文件
用matlab画三维图实例_cad绘制3d图形的教程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
7860
有谁能告诉我这图是怎么画出来的?
小编在一次浏览网页的时候不经意间发现了这张图 —— “HI”,仿佛是向小编打招呼,“你好,我在这儿呢!”如此精妙绝伦的画面小编是从来都不会放过的。可惜,点开图片没找到原始出处,咋办呢?于是开启各种搜图模式,经过几番周折终于找到了根源,原来是工程师Mike Croucher于2007年在Walking Randomly上使用Mathematica发布的,数学公式如下:
巴山学长
2019/10/22
6670
有谁能告诉我这图是怎么画出来的?
【MATLAB】进阶绘图 ( imagesc 缩放颜色显示图像 | imagesc 函数 | Colormaps 颜色图 )
imagesc 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/imagesc.html
韩曙亮
2023/03/29
4.7K0
【MATLAB】进阶绘图 ( imagesc 缩放颜色显示图像 | imagesc 函数 | Colormaps 颜色图 )
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图
本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是要奋发努力,拼搏上进,学好技术,才能师夷长技以制夷,为中华之崛起而读书!
演化计算与人工智能
2020/08/14
1.4K0
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图
超全!40000字 Matplotlib 实战
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
公众号机器学习与AI生成创作
2020/09/22
8.2K0
超全!40000字 Matplotlib 实战
MATLAB绘图总结
二维图像是在不同的平面坐标上将数据点连接起来的平面图像。常用的平面坐标有,直角坐标、极坐标、对数坐标等,MATLAB有很多常用的指令来绘制不同的二维图像。
全栈程序员站长
2022/09/07
1.9K0
【MATLAB 从零到进阶】day7制作三维图形
>> plot3(20*sin(t), 20*cos(t), t, 'r', 'linewidth', 2);
Ai学习的老章
2019/04/10
9710
【MATLAB 从零到进阶】day7制作三维图形
Python绘制3D色温球
对于二维数组的球坐标色温展示效果,现有教程不尽人意,如何按照数组中数值的大小赋予颜色值,下文通过函数定义方式,一步到位达到绘制目的。
梁佐佐
2021/09/08
1.2K0
一篇文章学会Matplotlib
这个示例演示了如何使用Matplotlib绘制一个折线图。列表x和y分别包含水平和垂直坐标数据,并使用plt.plot()函数连接它们以绘制线条。添加标题、坐标轴标签和刻度标签可以提高图表可阅读性。
GeekLiHua
2025/01/21
7800
推荐阅读
相关推荐
数学建模番外篇6:二维/三维热力图绘制(matlab)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验