R语言boxplot绘图函数

Posted 庐州月光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言boxplot绘图函数相关的知识,希望对你有一定的参考价值。

boxplot 用于绘制箱线图,我们都知道boxplot 用于展示一组数据的总体分布,在R语言中,支持两种输入数据的方式

第一种:x , 这个参数指定用于绘制箱线图所用的数据,是一个向量

代码示例:

boxplot(1:100)

效果图如下:

第二种, 通多formala 和 data 两个参数指定,适合展示多组数据的分布

代码示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), each = 100)))
boxplot( value ~ group, dataset)

效果图如下:

下面详细解释几个常用的参数:

1)widh : 控制箱体的宽度,当图中有多个箱子时才会发挥作用,其值为长度和箱体个数相同的向量,指定了不同箱体的相对宽度

代码示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), each = 100)))
boxplot( value ~ group, dataset, width = c(1, 2))

效果图如下:

 

从图中可以看出,第二个箱子的宽度是第一个箱子的两倍

2) varwidth : 逻辑值,控制箱体的宽度, 只有图中有多个箱体时才发挥作用,默认为FALSE, 所有箱体的宽度相同,当其值为TRUE时,代表每个箱体的样本量作为其相对宽度

代码示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset, varwidth = T)

效果图如下:

从图中可以看出,两个箱体的宽度不同,因为两组数据的样本量不同;

3)notch : 逻辑值, 

代码示例:

par(mfrow = c(1, 2))
boxplot(1:100, notch = T, main = "notch = T")
boxplot(1:100, notch = F, main = "notch = F")

效果图如下:

4)col : 箱体的填充色

代码示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset, col = c("green", "red"))

效果图如下:

5) border : 箱体中线条的颜色,默认为黑色

代码示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset,  border = c("red", "green"))

效果图如下:

6)names: 每个箱体下面的标签

代码示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset,  names = c("red", "green"))

效果图如下:

 

下面我们讨论下,箱线图中箱体的位置是如何决定的?

默认情况下每个箱体的中心点和箱体的位置是一定的,比如第二个箱体对应的中心点的x坐标就是2

默认情况下每个箱体的宽度是多少呢?

当图中只有一个箱体时,看下面代码的运行结果:

boxplot(1:100)
abline(v = 0.8, lty = 2)
abline(v = 1.2, lty = 2)
axis(side = 1)

结果如下:

从图中可以看出,因为只有一个箱体,所以中心点为1, 两边的宽度各位0.2, 所以左边的x轴坐标是0.8, 右边的x轴坐标为1.2

当图中有多个箱体时,看下面代码的运行结果:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(100, 100))))
boxplot( value ~ group, dataset)
abline(v = 0.6, lty = 2)
abline(v = 1.4, lty = 2)

abline(v = 1.6, lty = 2)
abline(v = 2.4, lty = 2)

结果如下:

 

从图中我们可以发现,每个箱体的宽度为0.8

 

以上是关于R语言boxplot绘图函数的主要内容,如果未能解决你的问题,请参考以下文章

R语言学习笔记6

R语言可视化分面图多变量分组多水平t检验可视化多变量分组多水平分面箱图(faceting boxplot)并添加显著性水平在标签和绘图上边框之间添加15%的空格

R语言使用ggplot2包使用geom_boxplot函数绘制基础分组水平箱图(boxplot)实战

R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(boxplot)实战

R语言使用ggplot2包使用geom_boxplot函数绘制基础分组缺口箱图(notch boxplot)实战

R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(输出多个分组)实战