matlab画相关系数图(长时序--分时期分月份)

成图如下:

a图为例子,纵坐标是1-12月,横坐标是不同的因子。如左下第一格表示的就是x1与AO因子在十二月的相关性。

(a/b/c是x1因子,d/e/f是x2因子)

首先要计算出每个相关系数(可以在SPSS中完成),然后将它们按矩阵型输入到excel中,如下:

接着在matlab中读入数据,直接画图:

Matlab 复制代码
corr = readtable('AONAODA.xls','Sheet','Sheet2');
A1 = table2array(corr(1:12,2:4));
A2 = table2array(corr(1:12,7:9));
A3 = table2array(corr(1:12,12:14));
A4 = table2array(corr(15:26,2:4));
A5 = table2array(corr(15:26,7:9));
A6 = table2array(corr(15:26,12:14));
% CMap=slanCM(102);
CMap=slanCM(95);


figure;
sub1 = subplot(2,3,1);
imagesc(A2);
caxis([-1 1]);
xticklabels({'AO','NAO','DA'});
yticks([1:2:12]);
yticklabels({'Jan','Mar','May','Jul','Sep','Nov'});
pos=set(sub1,'Position', [0.06 0.58 0.22 0.38]);  %设置位置
txt = {'(a) 1984-2000'};
text(0.1,1,txt)

% yticklabels({'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'});

sub2 = subplot(2,3,2);
imagesc(A3);
caxis([-1 1]);
xticklabels({'AO','NAO','DA'});
yticks([1:2:12]);
yticklabels({'Jan','Mar','May','Jul','Sep','Nov'});
pos=set(sub2,'Position', [0.36 0.58 0.22 0.38]);
txt = {'(b) 2001-2022'};
text(0.1,1,txt)

sub3 = subplot(2,3,3);
imagesc(A1);
caxis([-1 1]);
xticklabels({'AO','NAO','DA'});
yticks([1:2:12]);
yticklabels({'Jan','Mar','May','Jul','Sep','Nov'});
txt = {'(c) 1984-2022'};
text(0.1,1,txt)
pos=set(sub3,'Position', [0.66 0.58 0.22 0.38]);

sub4 = subplot(2,3,4);
imagesc(A5);
caxis([-1 1]);
xticklabels({'AO','NAO','DA'});
yticks([1:2:12]);
yticklabels({'Jan','Mar','May','Jul','Sep','Nov'});
pos=set(sub4,'Position', [0.06 0.1 0.22 0.38]);
txt = {'(d) 1984-2000'};
text(0.1,1,txt)

sub5 = subplot(2,3,5);
imagesc(A6);
caxis([-1 1]);
xticklabels({'AO','NAO','DA'});
yticks([1:2:12]);
yticklabels({'Jan','Mar','May','Jul','Sep','Nov'});
pos=set(sub5,'Position', [0.36 0.1 0.22 0.38]);
txt = {'(e) 2001-2022'};
text(0.1,1,txt)

sub6=subplot(2,3,6);
imagesc(A4);
caxis([-1 1]);
xticklabels({'AO','NAO','DA'});
yticks([1:2:12]);
yticklabels({'Jan','Mar','May','Jul','Sep','Nov'});
pos=set(sub6,'Position', [0.66 0.1 0.22 0.38]);
txt = {'(f) 1984-2022'};
text(0.1,1,txt)

colormap(CMap);


h=colorbar('eastoutside','fontsize',12);
set(get(h,'Title'),'string','Corr','fontsize',9)
set(h,'YTick',-1:1:1,'fontsize',9);%设置colorbar单位
pos3=set(h,'Position', [0.92 0.1 0.022 0.85]);  %设置colorbar位置

上面的代码大部分都是重复的,只要弄懂第一个子图怎么画,后面的改变量就行。

(CMap是我下的颜色库,也可以用matlab自带的)

另外,多子图的colorbar的设置需要在最后单独写几行代码,可根据自己需求更改。

祝大家画出好看的图。

相关推荐
Evand J1 天前
【MATLAB例程,图像滤波降噪12】加权中值滑动窗口滤波(WMF)图像降噪,包含滤波质量评价。附代码下载链接
开发语言·图像处理·人工智能·计算机视觉·matlab·滑动窗口·滤波
Evand J1 天前
【MATLAB例程,图像降噪7】高斯加权滑动窗口滤波,用于图像降噪,带质量评价,附代码下载链接
开发语言·图像处理·matlab·滑动窗口·滤波·降噪·图像滤波
菜鸟~noob2331 天前
【电子战】第07篇:多普勒测向【含matlab代码】
android·开发语言·matlab
可编程芯片开发1 天前
基于压电能量收集和MPPT最大功率跟踪算法的IoT压力传感器电源系统Simulink建模与仿真
物联网·matlab·simulink·mppt·压电能量收集·iot压力传感器
菜鸟~noob2331 天前
【电子战】第12篇:TDOA 定位——双曲线与等时差线【含matlab代码】
开发语言·matlab
菜鸟~noob2332 天前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
菜鸟~noob2332 天前
【电子战】第08篇:多普勒测向的工程实现与优化【含matlab代码】
开发语言·matlab
菜鸟~noob2332 天前
【电子战】第06篇:干涉仪与相位差测向【含matlab代码】
开发语言·matlab
菜鸟~noob2332 天前
【电子战】测向精度极限——克拉美-罗下限(CRLB)与误差分析【含matlab代码】
开发语言·matlab
路径规划6662 天前
(MATLAB代码) 船舶轨迹聚类:K-means 算法(260912)
算法·matlab·kmeans