📜  R Boxplot(1)

📅  最后修改于: 2023-12-03 14:46:51.618000             🧑  作者: Mango

R Boxplot介绍

boxplot 是 R 语言中常用的数据可视化方法之一,它能够帮助我们直观地展示数据的分布情况,还能够帮助我们识别异常值。本文将介绍如何使用 R 中的 boxplot 函数进行数据可视化。

基本用法

下面是一个最简单的 boxplot 示例:

# 假设你有一个向量
x <- c(1, 2, 3, 4, 5)

# 用 boxplot 将其可视化
boxplot(x)

这将生成一个包含一个盒子和一条线的图形,如下所示:

simple-boxplot

这个盒子被称作“盒须图”,它能够展示数据分布的程度,包括中位数、上下四分位数、最小值和最大值,同时它还会标出任何超出数据分布范围的值,也就是所谓的“异常值”。

自定义样式

我们可以调整 boxplot 图形的许多方面,比如说:

  • 调整盒子的填充颜色。
  • 调整盒子的边框颜色和线条粗细。
  • 删除外部的横线和点,只保留盒子和内部数据点。
  • 为盒子上方和下方的“盒须”设置不同的粗细和颜色。

下面是一个自定义样式的示例:

# 生成一些随机数据
set.seed(42) # 设置随机数种子,以便重现结果
x <- rnorm(100, mean = 100, sd = 15) # 生成 100 个正态分布随机数

# 自定义样式
boxplot(x, 
        col = "steelblue", # 设置盒子的填充颜色
        border = "darkgray", # 设置盒子的边框颜色
        lwd = 2, # 设置盒子的边框线条粗细
        outcol = "red", # 设置异常值的颜色为红色
        outpch = 16, # 设置异常值的形状为圆形
        whisklty = 2, # 设置上下盒须的线型为虚线
        upper = "darkred", # 设置上须的线条颜色为暗红色
        lower = "darkgreen", # 设置下须的线条颜色为暗绿色
        staplecol = "darkgray") # 设置盒须两端的小横杠颜色为灰色        

这将生成一个非常不同的 boxplot 图形,如下所示:

custom-boxplot

请注意,通过修改参数,我们可以轻松自定义样式。例如,我们将 whisklty 参数设置为 2,这意味着盒须线将变为虚线。我们可以通过将 upperlower 参数分别设置为 "darkred""darkgreen",使上下盒须的颜色不同。我们还可以使用 staplecol 参数将盒须两端的小横杠颜色变为灰色。

分组盒须图

当我们需要将多个数据集进行比较时,我们可以使用分组盒须图。下面是一个分组盒须图的示例:

# 生成两个随机数据集
set.seed(42)
x1 <- rnorm(100, mean = 10, sd = 2)
x2 <- rnorm(100, mean = 15, sd = 4)

# 将两个数据集合并为一个列表
x <- list(x1, x2)

# 画个分组盒须图
boxplot(x, 
        col = c("steelblue","orange"), # 设置第一组盒须的填充色为蓝色,第二组为橙色
        border = c("darkgray", "darkgray"), # 设置第一组盒须的边框颜色为灰色,第二组为灰色
        lwd = 2, # 设置盒子的边框线条粗细
        ylab = "Value", # 设置 Y 轴标签
        xlab = "Group", # 设置 X 轴标签
        main = "Grouped Boxplot") # 设置标题        

这将生成一个分组盒须图,如下所示:

grouped-boxplot

水平盒须图

我们也可以将 boxplot 图形旋转 90 度,创建水平盒须图。下面是一个水平盒须图的示例:

# 生成一些随机数据
set.seed(42)
x <- rnorm(100, mean = 100, sd = 15)

# 画个水平盒须图
boxplot(x, 
        horizontal = TRUE, # 将盒须图旋转为水平方向
        col = "steelblue", # 设置盒子的填充颜色
        border = "darkgray", # 设置盒子的边框颜色
        lwd = 2, # 设置盒子的边框线条粗细
        outcol = "red", # 设置异常值的颜色为红色
        outpch = 16, # 设置异常值的形状为圆形
        whisklty = 2, # 设置上下盒须的线型为虚线
        xlab = "Value", # 设置 X 轴标签
        main = "Horizontal Boxplot") # 设置标题

这将生成一个水平盒须图,如下所示:

horizontal-boxplot

快速绘图

上述示例演示了如何使用 boxplot 函数绘制复杂的图形。然而,当仅需要绘制一组数据的基本盒须图时,我们可以更快地使用 ggplot2 包。取决于具体情况,使用 ggplot2 可能更容易自定义或更高效,而使用 boxplot 可能更简单,更灵活。

下面是一个快速绘图示例:

# 加载 ggplot2 包
library(ggplot2)

# 生成一些随机数据
set.seed(42)
x <- rnorm(100, mean = 100, sd = 15)

# 画个基本盒须图
ggplot(data.frame(x), aes(y = x)) +
  geom_boxplot(fill = "steelblue", color = "darkgray", size = 2) +
  theme_classic() +
  labs(y = "Value", title = "Basic Boxplot")

这将生成一个基本盒须图,如下所示:

ggplot-boxplot

总结

在 R 中,boxplot 函数是一种常用的数据可视化方法,能够展示数据分布的程度,包括中位数、上下四分位数、最小值和最大值。我们可以通过调整 boxplot 的参数来自定义样式。当我们需要比较多个数据集时,我们可以使用分组盒须图。如果我们仅需要绘制一组数据的基本盒须图,则可以考虑使用 ggplot2 包。