R语言箱线图(boxplot)四分位算法

Python018

R语言箱线图(boxplot)四分位算法,第1张

箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法。它也可以粗略地看出数据是否具有有对称性,分布的离散程度等信息;特别适用于对几个样本的比较。 注:四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。  第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。   第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。   第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。   第三四分位数与第一四分位数的差距又称四分位距(InterQuartile Range,IQR)。 R语言中计算方法: quantile函数直接计算四分位: 例如:data = c(1,2,3,4,5,6.2,7,8,9,10) quantile(data)   #其结果如下 0%       25%       50%       75%       100% 1.00      3.25       5.60        7.75      10.00 其中0%:最小值;25%:第一四分位数Q1;50%:中位数;75%:第三四分位数;100%:最大值。 其计算方法为: 1. 排序,从小到大排列data; 2. 计算分位数的位置;pos = 1+ (n-1)*p,n为数据的总个数,p为0-1之间的值 3. 给出分位数 注意:另一种分位数的计算方法为:其他与前面的一致。但是分位数位置的计算采用:pos = (n+1)*p,n为数据的总个数,p为0-1之间的值。 四分位数的计算方法没有一个统计的标准,如果对此计算有要求的,需要注意函数的具体算法。 另外,boxplot中存在异常值,其规定标准如下: 当数据中的值大于或小于箱体的四分位距IQR的1.5倍时,认定为异常值。 就是说当某值大于(Q3+1.5*IQR)或小于(Q1-1.5*IQR)时,处理时会认定为异常值。

R语言绘图系列:

标度控制着数据到图形属性的映射,标度将我们的数据转化为视觉上可以感知的东西,比如大小、位置、颜色、形状等。标度也为我们提供了读图时所使用的工具,比如说坐标轴和图例。总的来说,可以称为引导元素。标度函数控制元素的属性,可以理解为图形的遥控器,可以用它来调整画布大小、颜色等等。此前学的shape,color,size等参数和标度函数相比显得不够灵活。

scale_fill_brewer 调色板函数

geom_errorbar()

geom_crossbar()

geom_linerange() 绘制线段

geom_pointrange() 绘制点

pointrange:点画线

首先绘制一张盒形图

在图上显示出观测值

值得注意的是,图上点的多少并不能完全反应原始数据的多少,因为有的点可能因为点过于密集就会被覆盖,看起来是一个点,其实可能是多个点。

因此可以使用geom_jitter函数将不同的点区分开(jitter是震荡散点),width设置如果遇到相同的点,点向左右方平移的距离。alpha设置透明度。

黑色点是离群点

还可以绘制卡槽图

varwidth参数会根据该水平下观测值的个数(n值)改变盒形图的宽度。(这里宽度去的不是观测个数的绝对值,而是平方根,以缩小差距。)

给盒子上色

分组盒形图,用不同颜色区分

画水平的盒形图

使用coord_flip函数(坐标轴翻转函数)

绘制一张直方图

bins可以设置直方图条柱的数目,默认为30。当bins和binwidth(设置条柱宽度)同时设置时,默认以binwidth为准。

新加入变量cut,根据新变量在price水平上进行一个计数

y轴由count变为density,绘制概率密度

注意下面density的写法,前后都要加..

绘制概率密度曲线:geom_density函数

堆栈密度概率曲线

geom_line/geom_path/geom_step

绘制一个简单的线图

绘制点线图,点和线需要分别添加。

如上图,线在点之上,是因为先投射了点,又投射了线。

先投射线,点就出现在了线之上。

线的颜色出现了渐变

geom_smooth函数:绘制拟合曲线

methods还有其他的方法,如glm:广义线性模型;losses:纯粹平滑;gam:广义加性模型等等(lm和glm最常用)

geom_hline绘制水平线,geom_vline绘制垂直线。xintercept和yintercept是截距,slope是斜率。

利用ggplot2包,盒形图的轴有指标名称:

library(ggplot2)

p <- qplot(cut, depth, data=diamonds) + geom_boxplot()

p