脚本:
clear
%data = xlsread('C:\Users\Liuy\Desktop\泰勒图制作\cfmd数据集验证.xlsx','日尺度','B2:NB3');
%data = xlsread('C:\Users\Liuy\Desktop\泰勒图制作\Acell76.xlsx','年降雨','B2:AB24');
data = xlsread('C:\Users\Liuy\Desktop\泰勒图制作\Tcell139.xlsx','按照逐月(单点)','B2:LM3');
%data = xlsread('C:\Users\Liuy\Desktop\泰勒图制作\Acell139.xlsx','按照多年日平均(单点)','B2:NB3');
%获得统计结果
for ii = 2 : size(data,1)
S = allstats(data(1,:),data(ii,:));%allstats.m文件获取统计值
MYSTATS(ii,:) = S(:,2); % We get stats versus reference
end %for iserie
MYSTATS(1,:) = S(:,1); % We assign reference stats to the first row
% taylordiag(MYSTaTS(:,2),MYSTaTS(:,3),MYSTaTS(:,4));
stdev=MYSTATS(1,2);%此处时参考值的标准差
MYSTATS(:,2)=MYSTATS(:,2)/stdev;% 标准化处理,每个模式的标准差/参考值标准差
MYSTATS(:,3)=MYSTATS(:,3)/stdev;% 标准化处理,每个模式的均方根误差/参考值标准差
%作图
%折线图(subplot子图)
figure
iw=2;jw=1;
ax = ptable([2 3],[2 3;4 6]); %子图位置及大小x
alphab = 'ABCDEFG'; %添加图编号(预设) A B C D...
subplot(iw,jw,1); %折线图位置
plot(data');%转置
grid on,xlabel('day');ylabel('precipitation (mm)');
title(sprintf('%s: These are the different time series of daily precipitation ','A'),'fontweight','bold');
hold on
subplot(iw,jw,2); %泰勒图展示位置
%泰勒图 标签中使用了很多默认参数,可以参考taylordiag文件中定义,进行更改。
[pp tt axl] =taylordiag(MYSTATS(:,2),MYSTATS(:,3),MYSTATS(:,4), ...
'tickrms',[0:.2:1],'titleRMS', 0 ,'showlabelsRMS',1,'widthRMS',0.5,'colRMS','g',...%去中心的均方根误差(就是减去平均值再求RMS)%每一个属性(如标题,标签)后数字,1存在,0不存在
'tickSTD',[0:.25:1.25],'limSTD',1.25,'styleSTD','-',... %标准差
'tickCOR',[.1:.2:.9 .95 .99],'showlabelsCOR',1,'titleCOR',1);%皮尔逊相关系数
%添加图注
for ii = 1 : length(tt)
set(tt(ii),'fontsize',9,'fontweight','bold') %标志字母大小
set(pp(ii),'markersize',9) %标志点大小
if ii == 1
set(tt(ii),'String','Obser');%参考值图上显示名称
else
set(tt(ii),'String',alphab(ii-1));
end
end
title(sprintf('%s: Taylor Diagram at Hanjiang','B'),'fontweight','bold'); %图名及图编号
tt = axl(2).handle;
for ii = 1 : length(tt)
set(tt(ii),'fontsize',10,'fontweight','normal');
end
set(axl(1).handle,'fontweight','normal');
效果图:
