搜索
查看: 5289|回复: 3

ggplot2箱线图

[复制链接]

11

主题

14

帖子

178

积分

版主

Rank: 7Rank: 7Rank: 7

积分
178
发表于 2017-4-12 16:32:00 | 显示全部楼层 |阅读模式
箱线图(Boxplot,Box-whisker Plot
组成:五个统计量:最小值,第一四分位数,中位数(第二四分位数),第三四分位数,最大值
用途:描述数据的一种方法
     粗略地看出数据是否具有有对称性,分布的分散程度等信息,
适用:特别可以用于对几个样本的比较。

绘制箱线图的步骤如下:

  1.画一只箱子,箱子两端分别位于第一个和第三个四分位数上。

  2.在箱子中位数的位置画一条垂直线。

  3.用四分位数全距IQR = Q3 Q1,确定限制线的位置。箱线图的上、下限制线分别在比Q11.5(IQR)和比Q31.5(IQR)的位置上。两条限制线以外的数据可以认为是异常值。

  4.图1中的虚线称为触须线。触须线从箱子两端开始绘制,直至第3步中计算的限制线内的最小值和最大值。

  5.最后,每个异常值的位置都用星号“*”表示出来。

概念:
第一四分位数 (Q1)
  “较小四分位数”等于该样本中所有数值由小到大排列后第25%的数字。
第二四分位数 (Q2)
  “中位数”,等于该样本中所有数值由小到大排列后第50%的数字。
第三四分位数 (Q3)
  “较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。
例如一队数列:
1, 3, 10, 16, 19, 20, 21, 22, 83, 87, 200
Q1=10
Q2=20
Q3=83

[AppleScript] 纯文本查看 复制代码
# Clear workspace
rm(list = ls())
#set as your own path .R files.
path<-setwd("D:/Test/R/R_paint")
library(ggplot2)
# create fake dataset with additional attributes - sex, sample, and temperature
x <- data.frame(
  values = c(1, 3, 10, 16, 19, 20, 21, 25, 83, 87, 200),
  sex = rep(c('M', 'F'), each = 11),
  sample = rep(c('sample_A', 'sample_B'), each = 11)
)
x
png("plotbox_3.png",width = 600,height = 800)
ggplot(x, aes(x = sample, y = values, fill = sex)) +
  geom_boxplot()
dev.off()

[AppleScript] 纯文本查看 复制代码
y <- rnorm(100)
y
df <- data.frame(
  x = 1,
  y0 = min(y),
  y25 = quantile(y, 0.25),
  y50 = median(y),
  y75 = quantile(y, 0.75),
  y100 = max(y)
)
df$y0
df$y25
df$y50
df$y75
png("plotbox_4.png",width = 600,height = 800)
ggplot(df, aes(x)) +
  geom_boxplot(
    aes(ymin = y0, lower = y25, middle = y50, upper = y75, ymax = y100),
    stat = "identity"
  )
dev.off()


[AppleScript] 纯文本查看 复制代码
Q0=df$y0
Q1=df$y25
Q2=df$y50
Q3=df$y75
Q4=df$y100
geom_boxplot(
mapping = NULL,
data = NULL,
stat = "boxplot",
position = "dodge", ...,
outlier.colour = NULL,
outlier.color = NULL,
outlier.fill = NULL,
outlier.shape = 19,
outlier.size = 1.5,
outlier.stroke = 0.5,
outlier.alpha = NULL,
notch = FALSE,
notchwidth = 0.5,
varwidth = FALSE,
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE)


以上为geom_boxplot()参数选择项

geom_boxplot(aes())aes()中的参数选项:
x
    lower
    upper
    Middle
    ymin : 下限
    ymax:上限
    alpha
    colour
    fill
    group
    linetype
    shape
    size
    weight
使用方法:
aes(ymin = y0, lower = y25, middle = y50, upper = y75, ymax = y100),


参考:

http://ggplot2.tidyverse.org/reference/geom_boxplot.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:shiny服务器设置用户名和密码登陆才能使用APP
下一篇:单细胞测序聚类发现新类型细胞
回复

使用道具 举报

0

主题

11

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2017-4-13 12:24:41 | 显示全部楼层
请教一个问题,既然超过Q3+1.5的是异常值,用*标记,为什么最后一张图里,除了最最外面的那个点用*标记了,其他超过的还是point呢?还是我理解有问题呢?
谢谢
回复 支持 反对

使用道具 举报

11

主题

14

帖子

178

积分

版主

Rank: 7Rank: 7Rank: 7

积分
178
 楼主| 发表于 2017-4-13 15:15:16 | 显示全部楼层
午饭饭 发表于 2017-4-13 12:24
请教一个问题,既然超过Q3+1.5的是异常值,用*标记,为什么最后一张图里,除了最最外面的那个点用*标记了, ...

从统计学角度超过上下限,一般都认为是异常值。最后一张图,是把统计学意义上的异常值,又分为离群值与极端离群值。这样的划分,在医学研究领域,有些划分是需要基于实际的实验样本数据,有可能,根据一些历史经验 ,不需要把异常值,完全剔除,仍保留部分合乎常理的离群值。       以上为个人理解。一般统计学,都会标为*号的。这里只是又细分了。
回复 支持 反对

使用道具 举报

0

主题

11

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2017-4-13 18:22:25 | 显示全部楼层
polya 发表于 2017-4-13 15:15
从统计学角度超过上下限,一般都认为是异常值。最后一张图,是把统计学意义上的异常值,又分为离群值与极 ...

谢谢~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-8-22 22:36 , Processed in 0.032308 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.