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

R语言绘制多箱线图向右偏移超出PDF页面的解决建议

箱线图偏移及超出PDF页面的解决建议

以下是几种可行的解决思路及代码示例:

1. 调整绘图边距

通过par(mar)参数自定义绘图区域的边距(参数顺序为下、左、上、右),缩小不必要的边距来为多个子图腾出空间:

arr = rnorm(1000, 50, 20)
# 缩小左右边距,适配1行3列的布局
par(mfrow = c(1, 3), mar = c(3, 4, 2, 1))
boxplot(arr, ylim=c(0,70), col = "red")
boxplot(arr,ylim=c(0,70), col = "#EEEEEC")
boxplot(arr,ylim=c(0,70), col = "blue")

2. 自定义PDF导出尺寸

直接使用R的pdf()函数指定足够的宽度和高度,避免RStudio默认尺寸不足的问题:

arr = rnorm(1000, 50, 20)
# 导出PDF时设置合适的宽高,确保三个图完整显示
pdf("boxplots_result.pdf", width = 10, height = 4)
par(mfrow = c(1, 3))
boxplot(arr, ylim=c(0,70), col = "red")
boxplot(arr,ylim=c(0,70), col = "#EEEEEC")
boxplot(arr,ylim=c(0,70), col = "blue")
dev.off()

3. 优化绘图元素节省空间

缩小轴标签、刻度的字体大小,减少不必要的空间占用:

arr = rnorm(1000, 50, 20)
par(mfrow = c(1, 3))
# 用cex.axis缩小刻度字体,cex.lab缩小轴标签字体
boxplot(arr, ylim=c(0,70), col = "red", cex.axis=0.8, cex.lab=0.9)
boxplot(arr,ylim=c(0,70), col = "#EEEEEC", cex.axis=0.8, cex.lab=0.9)
boxplot(arr,ylim=c(0,70), col = "blue", cex.axis=0.8, cex.lab=0.9)

4. 使用layout灵活分配布局

layout()比mfrow更灵活,可精确控制每个子图的宽度占比:

arr = rnorm(1000, 50, 20)
# 1行3列布局,三个图宽度均等分配
layout(matrix(1:3, nrow=1), widths=c(1,1,1))
boxplot(arr, ylim=c(0,70), col = "red")
boxplot(arr,ylim=c(0,70), col = "#EEEEEC")
boxplot(arr,ylim=c(0,70), col = "blue")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:52:53