【R语言】--- 箱型图
2021-09-07 本文已影响0人
生态数据
基本简介
箱线图主要是通过四分位数描述数据分布,通过最大值,上四分位数,中位数,下四分位数,最小值五处位置描述数据分布情况。箱线图能够显示出可能为离群点(范围±1.5*IQR以外的值,IQR表示四分位距,即上四分位数与下四分位数的差值)的观测。从箱线图中,可以大致推断出数据的集中或离散趋势。
基本用法
boxplot() 是一个泛型函数,目前支持两种参数类型:公式和数据。
boxplot(formula, data = NULL, ..., subset, na.action = NULL,
xlab = mklab(y_var = horizontal),
ylab = mklab(y_var =!horizontal),
add = FALSE, ann = !add, horizontal = FALSE,
drop = FALSE, sep = ".", lex.order = FALSE)
boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,
notch = FALSE, outline = TRUE, names, plot = TRUE,
border = par("fg"), col = NULL, log = "",
pars = list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5),
ann = !add, horizontal = FALSE, add = FALSE, at = NULL)
x 参数为一个数值向量或者列表,若为列表则对列表中每一个子对象依次作出箱线图。
formula 为一个公式,比如 y ~ x。
data 参数为一个数据框或者列表。
na.action 参数是对NA值的操作,默认为忽略。
ann 参数为逻辑值,是否绘制坐标轴。
range 是一个延伸倍数,决定了箱线图的须延伸到什么位置。
width 设置箱子的宽度。
varwidth 为逻辑值,若为 TRUE,那么箱子的宽度与样本量的平方根成比例。
notch 决定了是否在箱子上画凹槽,可以用于比较两组数据的中位数是否有差异。
horizontal 是否水平放置箱线图。
add 参数设置是否将箱线图添加到现有图形上。
at 参数,当add为TRUE时,设置箱线图位置。
示例
set.seed(1)
boxplot(rnorm(10),rnorm(10),names = c("rn1","rn2"),col = colors()[10:11])
set.seed(2)
op <- par(no.readonly=TRUE)
par(bty = "l",mar = rep(3,4),mfrow = c(1,2))
boxplot(rnorm(10),rnorm(5), col = rgb(1,seq(0,1,length.out = 2),0),
pch = 4,lwd = 1.5,varwidth = T)
boxplot(rnorm(20),rnorm(10), col = rgb(1,seq(0,1,length.out = 2),0),
pch = 4,lwd = 1.5,varwidth = T,notch = T)
par(op)
par(bty = "l")
boxplot(rnorm(10),NULL, names = c("A","B"),col = "green",pch = 4,lwd = 1.5,at = c(1,2))
boxplot(rnorm(10),col = "blue",lwd = 1.5,notch = T,add = T,at = 2)
par(op)
library(magrittr)
library(tidyverse)
set.seed(3)
op <- par(no.readonly=TRUE)
par(mar = rep(3,4))
col <- sample(colors(),3)
mtcars %>% {boxplot(mpg ~ cyl + am,.,at = c(1:3,5:7),col = col)}
par(op)
library(ggplot2)
library(patchwork)
library(RColorBrewer)
library(tidyr)
InsectSprays %>% {
p <- ggplot(.,mapping = aes(spray,count))
p1 <- p + geom_boxplot(outlier.shape = 21,outlier.colour = "red",outlier.fill = "blue",
col = "black",fill = brewer.pal(6,"Set1"))+
theme_bw()
p2 <- p + stat_boxplot(geom = "errorbar",width=0.3)+
geom_boxplot(outlier.shape = 21,outlier.colour = "red",outlier.fill = "blue",
col = "black",fill = brewer.pal(6,"Set1"))+
theme_bw()
p1+p2
}
参考文献
[1] https://www.sohu.com/a/220236877_434937
[2] https://zhuanlan.zhihu.com/p/144339417
[3] Robert I. Kabacoff (著). R语言实战(高涛/肖楠/陈钢 译). 北京: 人民邮电出版社.