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

R语言:如何在2×2多面板图中保留每个子图的轴边框

解决多面板图中顶部子图边框消失的问题

问题:制作2行2列的4面板图时,单独绘制顶部两个子图时边框正常,但添加底部两个子图后,顶部子图的边框消失。尝试过box(lty = "solid", col = 'black')、plot()里的fg='black'和bty="o"都无效。

问题原因

你在绘制右上角子图时多次设置了par(xpd = NA),这个参数会全局生效,后续所有绘图的元素都会被允许绘制到设备区域之外,导致顶部子图的边框被绘制在了可视区域外,看起来像是消失了。

修复方案

不要全局修改xpd参数,而是在需要绘制区域外文本时,临时在text()函数中指定xpd=NA,避免全局影响后续绘图。

以下是修正后的完整代码:

library(biwavelet)

# 初始化绘图参数,仅设置一次全局xpd=FALSE
par(mfrow = c(2,2), xpd=FALSE)
par(mar = c(1,1,1.1,1.1) + 0.1,
    oma = c(3,3,0.5,0.5) + 0.1)

dat <- as.data.frame(matrix(nrow = 500, ncol = 2))
dat[1] <- seq(1,500)

# 左上角子图
dat[2] <- sin(dat[1])
plot(wt(dat),
     xaxt = 'n',
     xlab = "",
     cex.axis = 1.5,
     cex.lab = 1.5)
axis(1, at = seq(0, 500, by = 100), cex.axis = 1.5, col.axis = 'NA')
mtext("Variable 1", side = 3, cex = 1.5, line = 0.1)
box(lty = "solid", col = 'black')

# 右上角子图
dat[2] <- sin(dat[1]*.5)
plot(wt(dat),
     xaxt = 'n',
     col.axis = 'NA',
     xlab = "",
     ylab = "")
axis(1, at = seq(100, 500, by = 100), cex.axis = 0.1, col.axis = 'NA')
mtext("Variable 2", side = 3, cex = 1.5, line = 0.1)
# 在text函数中临时设置xpd=NA,不全局修改参数
text("Location 1", x = 520, y = 4.1, srt = 270, cex = 1.5, xpd = NA)
box(lty = "solid", col = 'black')

# 左下角子图
dat[2] <- sin(dat[1]*.25)
plot(wt(dat),
     cex.axis = 1.5,
     xlab = "",
     ylab = "")
axis(1, at = seq(100, 500, by = 100), cex.axis = 1.5)
box(lty = "solid", col = 'black')

# 右下角子图
dat[2] <- sin(dat[1]*.125)
plot(wt(dat),
     col.axis = 'NA',
     ylab = "",
     xlab = "")
axis(1, at = seq(100, 500, by = 100), cex.axis = 1.5)
# 同样在text里临时设置xpd=NA
text("Location 2", x = 520, y = 4.5, srt = 270, cex = 1.5, xpd = NA)
box(lty = "solid", col = 'black')

title(xlab = "Time (hours)",
      ylab = "Period",
      outer = TRUE,
      line = 1.5,
      cex.lab = 1.5)

关键修改点

  • 移除所有全局的par(xpd = NA)调用,改为在text()函数内通过xpd=NA参数临时允许绘制区域外文本
  • 保持初始的par(xpd=FALSE),确保后续所有绘图元素(包括边框)都在可视区域内正常绘制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:10:15