热力图(Thermodynamic diagram)绘制MATLAB代码详解

目录

Preface

1.表格型热力图(Tabular thermal diagram)

 Ⅰ、相关系数矩阵热力图( Thermal diagram of correlation coefficient matrix)

Ⅱ、Thermal diagram of  Spongebaby

Ⅲ、RGB通道

2、平滑型热力图(Smooth-type thermal diagram)

Ⅰ、多峰函数(Multimodal function)

Ⅱ、earth

Reference article


Preface

        热力图,是一种通过对色块(Color block)着色来显示数据的统计图表。绘图时,需指定颜色映射的规则(Colormap)。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示,等等。热力图分为表格型热力图和平滑型热力图两类。

1.表格型热力图(Tabular thermal diagram)

         即色块图(Color block diagram)。下面是日本东京140年里的夏季气温绘制成的热力图。

 Ⅰ、相关系数矩阵热力图( Thermal diagram of correlation coefficient matrix)

        这是从2023-2030老龄化(>=65)比率预测模型提取的数据,颜色越深表示相关性越高。

load('p.mat');
correlationmatrix=corrcoef(p);
labels={'15-64比率','>65比率','自然增长率','GDP','医院数'};
h=heatmap(labels,labels,correlationmatrix,'Title','表格型热力图相关系数矩阵');
colormap('jet')

这是50*50随机矩阵热力图

figure
x=rand(50,50);
heatmap(x,'title','表格型热力图50*50随机矩阵');
colormap('cool')

Ⅱ、Thermal diagram of  Spongebaby

        这是原图。

 这是经处理和修改后得到的50*50像素数据

 这是根据数据绘制的热力图

figure
s1=imread("C:\Users\hqh\Desktop\Sponge baby.png");
s2=imresize(s1,[50,50]);%转化为50*50的矩阵
s3=rgb2gray(s2);
heatmap(s3,"Title",'表格型热力图Spongebaby像素50*50')
colormap('hot')

Ⅲ、RGB通道

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。

s1=imread("C:\Users\hqh\Desktop\Sponge baby.png");%返回三维矩阵
s2=imresize(s1,[50,50]);%像素变为50*50
s3=rgb2gray(s2);
titles1={'R通道','G通道','B通道'};
titles2={'R通道灰度图','G通道灰度图','B通道灰度图'};
for i=1:3
    figure,subplot(1,2,1)
    heatmap(s2(:,:,i),'title',titles1(i))
    subplot(1,2,2),imshow(s2(:,:,i)),title(titles2(i))
end

2、平滑型热力图(Smooth-type thermal diagram)

Ⅰ、多峰函数(Multimodal function)

同一个颜色代表同样的函数值

x=linspace(-10,10,2000);
y=x;
z=meshgrid(x,y);
for i=1:size(x,2)
    for j=1:size(x,2)
        z(i,j)=func3([x(i),y(j)]);
    end
end
mesh(x,y,z);
colormap('jet');

function v=func3(x)
v=((1*cos((1+1).*x(1)+1))+(2*cos((2+1).*x(1)+2))+(3*cos((3+1).*x(1)+3))+...
       (4*cos((4+1).*x(1)+4))+(5*cos((5+1).*x(1)+5))).*((1*cos((1+1).*x(2)+1))+...
       (2*cos((2+1).*x(2)+2))+(3*cos((3+1).*x(2)+3))+(4*cos((4+1).*x(2)+4))+(5*cos((5+1).*x(2)+5)));
end

Ⅱ、earth

 

[x,y,z]=sphere(1000);
mesh(6371*x,6371*y,6371*z);
title('平滑热力图地球')
colormap('jet');grid on

Reference article

热力图是什么?有什么用?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿白啥也不会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值