一、箱线图 box-plot

箱线图(boxplot)也称箱须图(box-whisker plot),它是用一组数据中的最小值、第一四分位数、中位数、第三四分位数和最大值来反映数据分布的中心位置和散布范围,可以粗略地看出数据是否具有对称性。通过将多组数据的箱线图画在同一坐标上,则可以清晰地显示各组数据的分布差异,为发现问题、改进流程提供线索。

什么是四分位数

箱线图需要用到统计学的四分位数(quartile)的概念,所谓四分位数,就是把组中所有数据由小到大排列并分成四等份,处于三个分割点位置的数字就是四分位数。

第一四分位数(q1),又称“较小四分位数”或“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。

第二四分位数(q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

第三四分位数(q3),又称“较大四分位数”或“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

第三四分位数与第一四分位数的差距又称四分位间距(interquartile range,iqr)。

计算四分位数首先要确定q1、q2、q3的位置(n表示数字的总个数):

q1的位置=(n+1)/4

q2的位置=(n+1)/2

q3的位置=3(n+1)/4

对于数字个数为奇数的,其四分位数比较容易确定。例如,数字“5、47、48、15、42、41、7、39、45、40、35”共有11项,由小到大排列的结果为“5、7、15、35、39、40、41、42、45、47、48”,计算结果如下:

q1的位置=(11+1)/4=3,该位置的数字是15。

q2的位置=(11+1)/2=6,该位置的数字是40。

q3的位置=3(11+1)/4=9,该位置的数字是45。

而对于数字个数为偶数的,其四分位数确定起来稍微繁琐一点。例如,数字“8、17、38、39、42、44”共有6项,位置计算结果如下:

q1的位置=(6+1)/4=1.75

q2的位置=(6+1)/2=3.5

q3的位置=3(6+1)/4=5.25

这时的数字以数据连续为前提,由所确定位置的前后两个数字共同确定。例如,q2的位置为3.5,则由第3个数字38和第4个数字39共同确定,计算方法是:38+(39-38)×3.5的小数部分,即38+1×0.5=38.5。该结果实际上是38和39的平均数。

同理,q1、q3的计算结果如下:

q1 = 8+(17-8)×0.75=14.75

q3 = 42+(44-42)×0.25=42.5

excel为计算四分位数提供了quartile(array,quart)函数,其中array参数用于指定要计算四分位数值的数组或数值型单元格区域,quart指定返回哪一个四分位值,可用值如下:

0,返回最小值;

1,返回第一个四分位数;

2,返回第二个四分位数,即中位数;

3,返回第三个四分位数;

4,返回最大值。

箱线图一般被用作显示数据分散情况。具体是计算一组数据的中位数、25%分位数、75%分位数、上边界、下边界,来将数据从大到小排列,直观展示数据整体的分布情况。

大部分正常数据在箱体中,上下边界之外的就是异常数据了。

上下边界的计算公式是:

upperlimit=q3+1.5iqr=75%分位数+(75%分位数-25%分位数)1.5

lowerlimit=q1-1.5iqr=25%分位数-(75%分位数-25%分位数)1.5

参数说明:

1.q1表示下四分位数,即25%分位数;q3为上四分位数,即75%分位数;iqr表示上下四分位差,系数1.5是一种经过大量分析和经验积累起来的标准,一般情况下不做调整。

2.分位数的参数可根据具体预警结果调整:25%和75%,是比较灵敏的条件,在这种条件下,多达25%的数据可以变得任意远而不会很大地扰动四分位。具体业务中可结合拟合结果自行调整为其他分位

使用echarts时,这些计算通过调用echarts.datatool.prepareboxplotdata()来完成。

说到这里,有一个预警,绘制箱线图除了要下载echart.js之外,还需要引入datatool.js,否则浏览器会报错:uncaught typeerror: cannot read property 'prepareboxplotdata' of undefined(…)。

datatool.js可以到github上下载。

二、echarts箱线图示例

echart官网给出的有两种。

一种是单值对应(样本元素有一组对应的值数据):

另一种是多值对应(样本元素有多个对应的值数据):

三、数据结构分析

1.单值对应

单值对应的数据结构比较简单,一个样本信息的数据存储到对应的一个数组里,这些数组又存储在一个大数组里。然后用echarts.datatool.prepareboxplotdata()处理这个大数组。

2.多值对应

举一个栗子:线上地址在

两种性别的三种基因含量表。(数据纯虚构)

那要提供什么样的数据才能使用echart生成对应的箱线图?

再来看一下echart官网给出栗子数据,是通过三个for循环随机生成的。

data = [];

for (var seriesindex = 0; seriesindex < 5; seriesindex++) {

var seriesdata = [];

for (var i = 0; i < 18; i++) {

var cate = [];

for (var j = 0; j < 100; j++) {

cate.push(math.random() * 200);

}

seriesdata.push(cate);

}

data.push(echarts.datatool.prepareboxplotdata(seriesdata));

}

通过在控制台console.log(data) , console.log(seriesdata) , console.log(cate) ,

可以看出外层的循环是echarts.datatool.prepareboxplotdata()执行的次数=5,可以理解为每个样本有5类元素。内部的循环表示有18个样本,一类元素的样本数据有100条。

所以要实现的性别基因表的数据结构应该是:

弄清楚数据结构剩下的绘图操作就是按部就班了,完整代码我已提交到。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对萬仟网的支持。

希望与广大网友互动??

点此进行留言吧!

r语言echarts画箱线图_echarts学习笔记之箱线图的分析与绘制详解相关推荐

  1. r语言echarts画箱线图_R语言学习 - 箱线图(小提琴图、抖动图、区域散点图)

    箱线图 箱线图是能同时反映数据统计量和整体分布,又很漂亮的展示图.在2014年的Nature Method上有2篇Correspondence论述了使用箱线图的好处和一个在线绘制箱线图的工具.就这样都 ...

  2. r语言echarts画箱线图_echarter: Echarts的R语言接口

    echarter是ECharts 4的R语言接口, 详细说明文档和案例请查看echarter . 简介 我之前一直使用highcharter做交互式数据可视化,因为工作的需要开始使用echarts,期 ...

  3. r语言echarts画箱线图_R语言之数据可视化---交互式图表recharts

    环图 一.安装方式: if (!require(devtools)) library(devtools) install_github("madlogos/recharts") 二 ...

  4. R语言实战(第三版)学习笔记-第一章

    第一章 x <- rnorm(5) 创建一个名为 x 的向量对象,该对象包含五个偏离标准正态分布的随机值. > age <- c(1,3,5,2,11,9,3,9,12,3) > ...

  5. R语言使用GGally包的ggparcoord函数可视化多变量的平行坐标轴图(parallel coordinates plot)、当排序点图的数据对象变多的可视化效果变差的时候

    R语言使用GGally包的ggparcoord函数可视化多变量的平行坐标轴图(parallel coordinates plot).当排序点图的数据对象变多的可视化效果变差的时候 目录

  6. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用scale_x_continuous函数中的limits参数指定X轴数值范围

    R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图.使用scale_x_continuous函数中的limits参数指定X轴数值范围 目录

  7. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用scale_x_continuous函数指定X轴坐标轴的取值范围(起始值和终止值)

    R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图.使用scale_x_continuous函数指定X轴坐标轴的取值范围(起始值和终止值) 目录

  8. R语言如何为dataframe的每一个数据列都做Q-Q图?

    R语言如何为dataframe的每一个数据列都做Q-Q图? 目录 R语言如何为dataframe的每一个数据列都做Q-Q图? R语言是解决什么问题的? R语言如何为dataframe的每一个数据列都做 ...

  9. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用stat_central_tendency函数在密度中添加均值竖线并自定义线条类型

    R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图.使用stat_central_tendency函数在密度中添加均值竖线并自定义线条类型 目录

最新文章

  1. 日文 LaTeX 系统介绍 - 最简示例
  2. bash ps1变量_在 Linux 中打扮你的冬季 Bash 提示符
  3. ChartDirector Python创建建多层甘特图的代码
  4. elasticsearch Insert 插入数据和delete 删除数据(Java)
  5. html5波浪线条,HTML5 svg炫酷波浪线条动画插件
  6. 第十周项目1-程序填充与阅读(三)
  7. 生信分析和美图资源推荐!!!
  8. linux中vi模式中c命令,“Linux”系统中“vi ^C ”命令是什么意思?
  9. linux 邮件开源工具_使用Linux和开源工具编写剧本
  10. 多线程之线程通信条件Condition
  11. linux安装RarLinux
  12. SQL Server的3种恢复模式(Simple,Full,Bulk-logged)
  13. vue 下载Excel 文件
  14. windows远程连接不能复制粘贴
  15. 支付宝免费领取7天优酷黄金会员 1.88元购买1个月优酷黄金会员
  16. UE4 皮革材质从简单到复杂
  17. MVC 简介,MVC数据库
  18. php 判断是否是机器人,php实现判断访问来路是否为搜索引擎机器人的方法_PHP
  19. android开发笔记之锁屏界面未读短信未接来电提醒(android 4.4)
  20. Mysql导出数据的几种方式

热门文章

  1. 2022-2028年中国XPS挤塑板行业市场全景评估及产业前景规划报告
  2. leetcode 567. Permutation in String 字符串的排列 滑动窗口法
  3. 那还剩下多少学习激情?
  4. Hopfiled 神经网络实例解释
  5. 基于区域的CNN(R-CNN)
  6. Android setMovementMethod() 方法
  7. Android studio 编译器导入一个背景图片
  8. SQL 利用merge 同步数据库之间表的数据
  9. Laravel安装后没有vendor文件夹
  10. Windows平台搭建-----C语言