You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R语言graphics包设置2×3绘图区域绘制类似示例图形?

用R的graphics包设置2×3绘图布局的方法

1. 基础布局设置:par() 函数的 mfrow/mfcol 参数

graphics包最常用的布局控制方式是通过par()函数的mfrow或mfcol参数,两者核心区别在于绘图顺序:

  • mfrow = c(行数, 列数):按行顺序填充绘图区域(先画满第一行所有子图,再绘制第二行)
  • mfcol = c(行数, 列数):按列顺序填充绘图区域(先画满第一列所有子图,再绘制第二列)

要实现2行3列的标准布局,直接设置对应参数即可,示例代码如下:

# 激活2行3列的绘图空间,按行填充
par(mfrow = c(2, 3))

# 逐个绘制6个示例图形
plot(rnorm(50), main = "图1: 正态分布散点")
hist(runif(100), main = "图2: 均匀分布直方图")
boxplot(iris$Sepal.Length, main = "图3: 箱线图")
plot(iris$Sepal.Length ~ iris$Petal.Length, main = "图4: 变量关联散点图")
pie(c(30, 20, 50), labels = c("A", "B", "C"), main = "图5: 占比饼图")
barplot(table(iris$Species), main = "图6: 类别条形图")

# 绘制完成后恢复默认的单图布局
par(mfrow = c(1, 1))

2. 调整布局细节:边距与整体标题

如果默认的绘图边距过宽/过窄,可通过par()的mar参数调整单图内边距(顺序为:下、左、上、右,单位为文本行),oma参数调整整个布局的外边距:

# 设置2行3列布局,同时压缩内边距、预留外边距
par(mfrow = c(2, 3), mar = c(2, 2, 1, 1), oma = c(1, 1, 2, 1))

# 批量绘制图形
for (i in 1:6) {
  plot(rnorm(100), main = paste("图", i))
}

# 给整个布局添加总标题
mtext("2×3布局示例合集", outer = TRUE, cex = 1.2, font = 2)

# 恢复默认绘图参数
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2) + 0.1, oma = c(0, 0, 0, 0))

3. 灵活自定义布局:layout() 函数

如果需要调整子图的宽高比例(比如让某一行更矮、某一列更宽),可以用layout()函数。对于标准2×3布局,示例如下:

# 创建2行3列的布局矩阵,按行填充子图位置
layout_matrix <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, byrow = TRUE)
layout(layout_matrix)

# 绘制图形
for (i in 1:6) {
  plot(rnorm(100), main = paste("图", i))
}

# 恢复默认布局
layout(1)

内容的提问来源于stack exchange,提问作者Azzeddine REGHAIS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:03:28