泰勒图(Taylor diagram)绘制方法大汇总

2023-11-06

  • 泰勒图(Taylor diagram)的基本介绍

  • R 绘制泰勒图(Taylor diagram)

  • Python 绘制泰勒图(Taylor diagram)

泰勒图(Taylor diagram)的基本介绍

泰勒图(Taylor diagram) 可以简单的理解为一种的可同时表示标准差、均方根误差和相关系数三个指标的可视化图表。样例图如下(来源于网络):

泰勒图(Taylor diagram)样例

通常,泰勒图中的散点代表不同模型,横纵轴代表标准差,辐射线代表相关系数,虚线代表均方根误差,可以多角度多维度的比较各模型指标之间的关系。更多关于泰勒图(Taylor diagram)的介绍,小伙伴们可自行搜索哈~下面,小编详细介绍如何使用RPython绘制泰勒图(Taylor diagram)。

R 绘制泰勒图(Taylor diagram)

小编在查找资料时,发现目前绘制泰勒图较为方便的包有R-plotrix包和R-openair包,接下来,就单独进行介绍:

R-plotrix包绘制

由于R-plotrix包绘制泰勒图结果可能美观欠缺,这里小编直接给出样例供大家参考,如下:

「样例」:

library(plotrix)
ref<-rnorm(30,sd=2)
model1<-ref+rnorm(30)/2
taylor.diagram(ref,model1)

Taylor diagram01 of plotrix

当然,你还可以通过设置pos.cor=FALSE 来获取全部值的相关系数,如下:

taylor.diagram(ref,model1,pos.cor=FALSE)

Taylor diagram02 of plotrix

更多详细参数信息,感兴趣的同学可参考R-openair包[1]

R-openair包绘制

R-openair包是一个提供空气质量数据(air quality data)的第三方包,其提供的TaylorDiagram() 绘图函数就可以很好的绘制泰勒图。样例如下:

首先进行数据构造(由于所需数据的特殊性,这里直接使用其提供好的数据):

library(openair)
library(tidyverse)
dat <- selectByDate(mydata, year = 2003)
dat <- data.frame(date = mydata$date, obs = mydata$nox, mod = mydata$nox)

dat <- transform(dat, month = as.numeric(format(date, "%m")))
mod1 <- transform(dat, mod = mod + 10 * month + 10 * month * rnorm(nrow(dat)),
                  model = "model 1")
# model 1
mod1 <- transform(mod1, mod = c(mod[5:length(mod)], mod[(length(mod) - 3) :
                                                          length(mod)]))

# model 2
mod2 <- transform(dat, mod = mod + 7 * month + 7 * month * rnorm(nrow(dat)),
                  model = "model 2")
# model 3
mod3 <- transform(dat, mod = mod + 3 * month + 3 * month * rnorm(nrow(dat)),
                  model = "model 3")

mod.dat <- rbind(mod1, mod2, mod3)

可视化绘制:

TaylorDiagram(mod.dat, obs = "obs", mod = "mod", group = "model")

Example01 Of Taylor diagram in openair::TaylorDiagram()

由于TaylorDiagram()绘图函数提供的图形设置参数较为丰富,我们还可以对其设置如下:

TaylorDiagram(mod.dat, obs = "obs", mod = "mod", group = "model",
              type = "season",
              cols=c("#0073C2","#EFC000","#868686"),
              rms.col="red",cor.col="#3B3B3B",
              arrow.lwd=1.5)

Example02 Of Taylor diagram in openair::TaylorDiagram()

以上就是对openair::TaylorDiagram() 绘制泰勒图(Taylor diagram)的简单介绍,更多详细参数信息参考R-openair::TaylorDiagram()[2]

Python 绘制泰勒图(Taylor diagram)

小编在查询资料时,发现Python绘制泰勒图大多都是基于Matplotlib自行定义绘制。这里小编发现了一个绘制泰勒图的宝藏可视化库-「SkillMetrics」,其提供多种泰勒图的绘制函数,接下来小编就选择几种泰勒图的样式例子进行展示(数据使用虚构的数据集),如下:

「样例一:」 基础泰勒图

import matplotlib.pyplot as plt
from matplotlib import rcParams
import numpy as np
import pandas  as pd
import skill_metrics as sm

data = pd.read_excel(r"test_data.xlsx")
# 以下操作可以当作固定步骤
taylor_stats1 = sm.taylor_statistics(data.pred1,data.ref,'data')
taylor_stats2 = sm.taylor_statistics(data.pred2,data.ref,'data')
taylor_stats3 = sm.taylor_statistics(data.pred3,data.ref,'data')
sdev = np.array([taylor_stats1['sdev'][0], taylor_stats1['sdev'][1], 
                 taylor_stats2['sdev'][1], taylor_stats3['sdev'][1]])
crmsd = np.array([taylor_stats1['crmsd'][0], taylor_stats1['crmsd'][1], 
                  taylor_stats2['crmsd'][1], taylor_stats3['crmsd'][1]])
ccoef = np.array([taylor_stats1['ccoef'][0], taylor_stats1['ccoef'][1], 
                  taylor_stats2['ccoef'][1], taylor_stats3['ccoef'][1]])

# 设置matplotlib 基本配置
rcParams["figure.figsize"] = [6, 6]
rcParams["figure.facecolor"] = "white"
rcParams["figure.edgecolor"] = "white"
rcParams["figure.dpi"] = 80
rcParams['lines.linewidth'] = 1 # 
rcParams["font.family"] = "Times New Roman"
rcParams.update({'font.size': 12}) # 
plt.close('all')
# 开始绘图
text_font = {'size':'15','weight':'bold','color':'black'}
sm.taylor_diagram(sdev,crmsd,ccoef)
plt.title("Example01 Of taylor_diagram() in Python",fontdict=text_font,pad=35)

Example01 Of taylor_diagram() in Python

「样例二:」

sm.taylor_diagram(sdev,crmsd,ccoef, markerLabel = label,
                      titleOBS = 'Observation',
                      markerLabelColor = 'r', 
                      tickRMS= np.arange(0,30,10),
                      tickRMSangle = 110.0, 
                      colRMS = 'm', styleRMS = ':', widthRMS = 2.0,
                      tickSTD = np.arange(10,30,10), axismax = 30.0, 
                      colSTD = 'b', styleSTD = '-.', widthSTD = 1.0,
                      colCOR = 'k', styleCOR = '--', widthCOR = 1.0)
text_font = {'size':'15','weight':'bold','color':'black'}
plt.title("Example02 Of taylor_diagram() in Python",fontdict=text_font,pad=35)

这里进行了部分参数的设置,结果如下:

Example02 Of taylor_diagram() in Python

「样例三:」 将值用colorbar表示

sm.taylor_diagram(sdev,crmsd,ccoef,
                      markerDisplayed = 'colorBar', titleColorbar = 'RMSD',
                     locationColorBar = 'EastOutside',
                      cmapzdata = crmsd, titleRMS = 'off',
                      tickRMS = range(0,30,10), tickRMSangle = 110.0,
                      colRMS = 'm', styleRMS = ':', widthRMS = 2.0,
                      tickSTD = range(10,30,10), axismax = 30.0,
                      colSTD = 'k', styleSTD = '-', widthSTD = 1.5,
                      colCOR = 'k', styleCOR = '--', widthCOR = 1.0)
text_font = {'size':'15','weight':'bold','color':'black'}
plt.title("Example03 Of taylor_diagram() in Python",fontdict=text_font,pad=35)

Example02 Of taylor_diagram() in Python

以上就是使用Python-SkillMetrics库绘制泰勒图的具体用法,更多详细例子可参考Python-SkillMetrics[3]

总结

本期推文,小编简单介绍了泰勒图(Taylor diagram)的R和Python绘制方法,这里可以看出,Python在绘制泰勒图时,其定制化操作可选的操作较多,大家可多了解下~~希望本期推文对大家有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

泰勒图(Taylor diagram)绘制方法大汇总 的相关文章

随机推荐

  • 解析网页-selenium-非常实用-python爬虫知识点7

    selenium 一 引入 二 配置Selenium chromdriver 三 Selenium的基本操作 一 设置驱动 退出驱动 driver webdriver Chrome 路径 driver quit 二 网页打开 关闭等基本操作
  • Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Site preference

    在Spring Boot中优雅的判断请求来源设备并跳转对应的页面 Device detection这篇文章中已经对Spring Mobile有过简单的介绍 这里介绍的是Spring Mobile的另一种类似的方法 Site preferen
  • 结合ChatGPT制作PPT

    今天看到圈友的一个AI分享 然后自己本身需要做一个分享的PPT 刚好那着帖子实战一下 先说下整体感受 优点 制作成本确实会比较低 很熟练的话大概就是1分钟一个都有可能 整体流程是先找个第三方PPT制作网站 看下支不支持文本转PPT功能 有这
  • ASP.NET导出Excel文件

    将页面显示的订单表导出Excel文件 步骤 定义导出Excel文件的方法 private void Export string FileType string FileName Response Charset GB2312 Respons
  • Mysql_常用函数

    Mysql 常用函数 Mysql 常用字符串函数 函数 功能 concat s1 s2 sn 连接s1 s2 sn为一个字符串 insert str x y instr 将字符串str从第x位置开始 y个字符长的字串替换为字符串instr
  • 分布式发展过程

    目录 1 分布式的演变过程 1 分布式的演变过程 框架的演变过程 友情链接 分布式的演变过程 友情链接 2 分布式架构的演进 初始阶段架构 初始阶段 的小型系统 应用程序 数据库 文件等所有的资源都在一台服务器上通俗称为LAMP 特征 应用
  • opencv基础-环境配置&官方文档&源码编译

    opencv环境配置 官方文档 源码编译 前言 一 官方下载网址 二 官方文档地址 三 安装教程 1 包下载 2 环境配置 1 为什么要配置环境 2 环境变量 3 系统环境 四 配置vs工程环境 vs2019 opencv4 6 0 1 v
  • Kubernetes学习笔记之Deployment篇(六)

    Deployment概念 Kubernetes Deployment是Kubernetes中的一个控制器对象 用于管理应用程序的部署 它管理和自动更新应用程序的ReplicaSets 并确保应用程序在任何时候都有一定数量的可用实例 Depl
  • IP3 三阶交调截取点测试(转帖)

    放大器 混频器和振荡器的通用规范 本文介绍并定义了在混频器 放大器和振荡器的数据资料中用到的RF术语 包括增益 变频增益 相位噪声 三阶截取点 P1dB 插入损耗 输出功率 调谐增益和调谐范围 另外还给出了图形和图像以阐明关键的概念 这些在
  • Grouped Query Attention论文阅读

    论文 GQA Training Generalized Multi Query Transformer Models from Multi Head Checkpoints 1 背景介绍 Google在2023年发表的一篇关于Transfo
  • MATLAB求解矩阵特征值的六种方法

    MATLAB求解矩阵特征值的六种方法 关于这个特征值的求解一共六种方法 幂法 反幂法 QR方法 对称QR方法 jacobi方法 二分法 接下来就着重讲解这些算法的是如何使用的 幂法 算法如下 输入 矩阵A 非零矢量x0 maxit 2000
  • openGL之API学习(二十七)glEnable

    开启服务器端的opengl功能 void glEnable GLenum cap GL BLEND If enabled blend the computed fragment color values with the values in
  • LeetCode416-分割等和子集(经典01背包问题—动态规划)

    目录 思路 什么是01背包问题 01背包问题空间复杂度优化 滚动数组 本题代码 本题空间复杂度优化 滚动数组 给你一个 只包含正整数 的 非空 数组 nums 请你判断是否可以将这个数组分割成两个子集 使得两个子集的元素和相等 示例 1 输
  • RPC 设计与实现

    RPC 设计与实现 互联网架构演变 微观 单一架构 以实现功能为目的 扩展性差 数据访问层问题 垂直架构 业务拆分 各司其职 控制层 M V解耦 分布式服务 服务间的相互调度 RPCremote process call 流动式计算 伸缩性
  • 如何判断用户有没有关注订阅号

    收集整理的方法如下 微信用户访问微信公众号 订阅号 的网页时判断用户有没有关注公众号 订阅号 1 前提 微信公众号分为服务号和订阅号 它们的接口权限各不相同 服务号可以通过网页授权接口 用户授权后获取用户的openid 通过用户的openi
  • 如何解决过拟合与欠拟合

    如何解决过拟合与欠拟合 根据不同的坐标方式 欠拟合与过拟合图解不同 1 横轴为训练样本数量 纵轴为误差 如上图所示 我们可以直观看出欠拟合和过拟合的区别 模型欠拟合 在训练集以及测试集上同时具有较高的误差 此时模型的偏差较大 模型过拟合 在
  • GLSL 数据精度

    1 默认精度 顶点着色器中默认精度 precision highp float precision highp int precision lowp sampler2D precision lowp samplerCube 像素着色器中默认
  • 【待完善另一种情况】tensorflow 使用CPU而不使用GPU的问题解决

    文章目录 1 问题 2 Solution 3 other 4 更新 5 参考 1 问题 今天运行代码时发现一个怪现象 在使用TensorFlow时 通过os environ CUDA VISIBLE DEVICES 0 指定使用GPU 0
  • TLB的作用与机制

    TLB Translation Lookaside Buffer 转换检测缓冲区 是用来帮助CPU中的MMU进行地址转换的 在可分页系统中 每个进程都有自己虚拟地址空间和虚拟页面 当CPU执行进程代码读到虚拟地址时 不是直接将该虚拟地址送到
  • 泰勒图(Taylor diagram)绘制方法大汇总

    泰勒图 Taylor diagram 的基本介绍 R 绘制泰勒图 Taylor diagram Python 绘制泰勒图 Taylor diagram 泰勒图 Taylor diagram 的基本介绍 泰勒图 Taylor diagram