超干货 | 泰勒图(Taylor diagram)绘制方法大汇总
近日,有小伙伴私信小编关于泰勒图(Taylor diagram) 的绘制方法,小编也进行了相关资料查询,那么,今天这篇推文借给大家介绍一下如何绘制泰勒图(Taylor diagram),具体内容如下:
泰勒图(Taylor diagram)的基本介绍
R 绘制泰勒图(Taylor diagram)
Python 绘制泰勒图(Taylor diagram)
泰勒图(Taylor diagram)的基本介绍
泰勒图(Taylor diagram) 可以简单的理解为一种的可同时表示标准差、均方根误差和相关系数三个指标的可视化图表。样例图如下(来源于网络):
通常,泰勒图中的散点代表不同模型,横纵轴代表标准差,辐射线代表相关系数,虚线代表均方根误差,可以多角度多维度的比较各模型指标之间的关系。更多关于泰勒图(Taylor diagram)的介绍,小伙伴们可自行搜索哈~下面,小编详细介绍如何使用R和Python绘制泰勒图(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)
当然,你还可以通过设置pos.cor=FALSE 来获取全部值的相关系数,如下:
taylor.diagram(ref,model1,pos.cor=FALSE)
更多详细参数信息,感兴趣的同学可参考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")
由于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)
以上就是对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 smdata = 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)
「样例二:」
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)
这里进行了部分参数的设置,结果如下:
「样例三:」 将值用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)
以上就是使用Python-SkillMetrics库绘制泰勒图的具体用法,更多详细例子可参考Python-SkillMetrics[3]
总结
本期推文,小编简单介绍了泰勒图(Taylor diagram)的R和Python绘制方法,这里可以看出,Python在绘制泰勒图时,其定制化操作可选的操作较多,大家可多了解下~~希望本期推文对大家有所帮助。
参考资料
[1]
R-openair包参数介绍: https://rdrr.io/cran/plotrix/man/taylor.diagram.html。
[2]
R-openair::TaylorDiagram()参数介绍: https://davidcarslaw.github.io/openair/reference/TaylorDiagram.html。
[3]
Python-SkillMetrics资料: https://github.com/PeterRochford/SkillMetrics/wiki。
各位伙伴们好,詹帅本帅搭建了一个个人博客和小程序,汇集各种干货和资源,也方便大家阅读,感兴趣的小伙伴请移步小程序体验一下哦!(欢迎提建议)
推荐阅读
牛逼!Python常用数据类型的基本操作(长文系列第①篇)
牛逼!Python的判断、循环和各种表达式(长文系列第②篇)
牛逼!Python函数和文件操作(长文系列第③篇)
牛逼!Python错误、异常和模块(长文系列第④篇)
超干货 | 泰勒图(Taylor diagram)绘制方法大汇总相关推荐
- 干货!开发外贸新客户方法大汇总,超全!
各大搜索引擎 必应:http://cn.bing.com/ 谷歌地图网址:http://r6d.cn/bxnpe/ 雅虎:https://search.yahoo.com/ 俄罗斯搜索引擎:https ...
- 甘特图(Gantt Chart)绘制方法
给大家介绍下甘特图(Gantt Chart) 及其绘制方法,主要内容如下: 甘特图(Gantt Chart) 的简单介绍 甘特图(Gantt Chart) 绘制方法(R+Python) 甘特图(Gan ...
- VB全面控制Excel方法大汇总
转自:http://blog.csdn.net/chenjl1031/article/details/8983631 VB全面控制Excel方法大汇总,共300个: 首先创建 Excel 对象,使用C ...
- 常用的密码破解方法大汇总 zz
常用的密码破解方法大汇总 zz 2008-10-30 01:59 P.M. 在日常操作中,我们经常要输入各种各样的密码,例如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这些密码,就有可能用不了 ...
- 计算机一级电子表格地区排名,玩转Excel电子表格排序方法大汇总
玩转Excel电子表格排序方法大汇总 分类:计算机等级 | 更新时间:2016-07-08| 来源:转载 排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类. ...
- 工作报告思维导图模板及绘制方法分享
工作报告是一项对员工的工作情况进行总结的重要图表展现方式,一个清晰完整的思维导图模板可以让上司更加深刻的对待工作中的问题,那具体是要怎样操作呢?下面是分享的工作报告思维导图模板请添加链接描述总结以及绘 ...
- Spotfire经验总结—累积百分比(帕累托图)的绘制方法
在Excel中绘制帕累托图,可使用"数据分析"模块进行绘制. Spotfire中的图表类型中,并没有"帕累托图"这一选项,那么应该如何绘制呢? 1. 图表类型需 ...
- UI设计超干货素材!小图标里的大学问!
UI最重要组建之一就是图标,随着扁平化设计的发展趋势,越来越注重图标的简洁与寓意表达,平面图标已占主导地位. 图标在视觉化表达上有着非常重要的作用,在工作型PPT中,更是提升商务感的神器之一.为 什么 ...
- 5折票倒计时3天 | 超干货议程首度曝光!2019 中国大数据技术大会邀您共赴
(大会官网https://t.csdnimg.cn/U1wA) 2019年,大数据与人工智能的热度已经蔓延到了各个领域,智能交通.AIoT.智慧城市,智慧物流.AI中台.工业制造等各种黑科技成为热搜名 ...
最新文章
- 安装laravel框架
- noip2006总结
- python3+opencv+tkinter开发简单的人脸识别小程序
- carbon 验证时间格式_接口测试:用好“变量”,重复验证也不怕
- dockerfile 创建Jenkins镜像
- WPF中MVVM模式(简略介绍)
- python读取idx_使用groupby和transform获取idxmaxp
- html area标签用例,CSS中的html – tabindex
- 【机器学习】今天详细谈下Soft Margin SVM和 SVM正则化
- IOS动画隐式,显式,翻页
- SpringMVC 参数绑定注解解析
- 3. RN笔记-icon图标的使用和阿里图标的使用
- 【新手上路常见问答】关于物联网设计
- 基于目标检测的回归创新实验感想(基于yolo v1)
- 【web前端性能优化】12.css sprite(图片精灵)-雪碧图实现原理
- 苹果直营店_请谨慎选择百邦苹果售后维修,亲身体验,倒不如直接去直营店呢...
- html5 canvas 涂鸦画板
- Nginx配置多个域名指向不同的端口
- 时统ptp_【学术论文】麒麟操作系统平台软时统同步方法研究
- php json里面追加一个数组,如何往指定是json数组里面添加数据
热门文章
- python算法与数据结构-顺序表(39)
- 你需要知道的nginx304
- soapui模拟桩mockservice---模拟后台服务器
- PHP数组操作——获取数组最后一个值的方法
- php检测非法字符的一种方法
- MySQL MyISAM和InnoDB存储引擎的比较
- openwrt 需要高级浏览器_OpenWrt的新(shi)奇(yong)玩法
- php网页轮播图,JavaScript_JavaScript实现图片轮播的方法,本文实例讲述了JavaScript实现图 - phpStudy...
- 【若依(ruoyi)】自定义layer
- jquery选择器:第一个子元素