MATLAB绘制泰勒图(10个以上model)

MATLAB绘制泰勒图代码

开头先说明一下我用惯了R语言却为什么选择MATLAB画泰勒图
R包里能画泰勒图的有两个,如果对图件的美观度要求不高,可以选择:
openair 包或者plotrix包,画出来的效果如下,代码也比较简单。
a.plotrix包plotrix包
b.openair包
在这里插入图片描述

以下是matlab绘图的步骤:

1.用到的附加功能包

网上主流的绘制Taylor Diagram 有两个包,直接在matlab主页面 附加功能获取附加功能中搜索 Taylor Diagram

在这里插入图片描述
MATLAB的版本是无所谓的。我这里选择PeterRochford / SkillMetricsToolbox 来画:

2.需要的数据

泰勒图简单的说就是一种可以表示标准差, 均方根误差和相关系数 三个指标的图。比单一R²和RMSE等横纵坐标的图更加直观。
它能够将多模式的相关信息集中表示,是近年来被广泛采用的应用于模式评估与检验的有效方法,能够将多个变量的标准差、与参考值的相关系数以及均方根偏差综合显示在一张二维图上,可以全面清晰反映多模式的模拟能力。
泰勒图分为标准化泰勒图和未标准化泰勒图,用的比较多的是标准化泰勒图。标准化泰勒图即对参考值与变量值的标准差与均方根误差同除以参考值的标准差,令参考值=1,E=0,并消除其物理量单位。
首先准备好画泰勒图需要的数据:
我是用R语言计算的sd,rmse和r方(用习惯了),当然也可以用MATLAB计算。
在这里插入图片描述
Obs一行就是参考值,根据自己的数据可以调整,我计算出的标准差分布在0-5之间,所以我将参考值设为2.5。

3.代码

close all;

% 设置图框属性,包括图位置和尺寸
set(gcf,'units','inches','position',[0,10.0,14.0,10.0]);
set(gcf,'DefaultAxesFontSize',18); % 坐标轴字体大小
%读取数据,sd rmse 和 r方
data=xlsread('K:\Weighted\taylor data2.xlsx','Sheet1','B2:D23');%文件路径  

sdev = data(:,1);
crmsd = data(:,2);
ccoef = data(:,3);
%mmodel ID,我这里手动输入是因为要每个单独设置标志
ID = {'Obs','ACCESS-CM2','ACCESS-ESM1-5','AWI-CM-1-1-MR','BCC-CSM2-MR',...
'CanESM5','CIESM','EC-Earth3-CC','EC-Earth3-Veg-LR','EC-Earth3-Veg','EC-Earth3',...
'FGOALS-g3','INM-CM4-8','INM-CM5-0','IPSL-CM6A-LR','MIROC6','MPI-ESM1-2-HR','MPI-ESM1-2-LR',...
'MRI-ESM2-0','NESM3','Ensemble-Mean','Multi-Model'};
label = ID;
%>>绘制 taylor_diagram
[hp, ht, axl] = taylor_diagram(sdev,crmsd,ccoef, ...
    'markerLabel',label, 'markerLegend', 'on', ...
    'styleSTD', '-', 'colOBS','r', 'markerObs','o', ...
    'markerSize',12, 'tickRMS',[0:1:5],'limSTD',5, ...
    'tickRMSangle', 115, 'showlabelsRMS', 'on', ...
    'titleRMS','on', 'titleOBS','Observation');
% 保存文件
writepng(gcf,'taylor fig.png');

结果为:
在这里插入图片描述

以上各参数含义:markerLabel 图例的名称;markerLegend on为显示图例,off不显示;
styleSTD,sd的线型;colOBS,参考点颜色,r为红色,在MATLAB中颜色和线型表示为:
在这里插入图片描述

4.再加亿点点细节

红色在图中过于突兀,通过映射关系可以调整每个点的形状和颜色:在这里插入图片描述

  • 28
    点赞
  • 170
    收藏
    觉得还不错? 一键收藏
  • 64
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 64
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值