如何在R语言中切换绘图并返回已有绘图添加线条?
在R中切换回mfrow布局的第一个子图添加线条
在使用par(mfrow=c(1,2))创建的1行2列布局里,要回到第一个散点图的绘图区域添加线条,有两种简单可行的方法:
方法1:用par(mfg)精准指定绘图区域
mfg参数专门用来控制多子图布局中当前活动区域,格式为c(行号, 列号, 总行数, 总列数)。你的场景里,第一个子图在第1行第1列,布局是1行2列,执行以下代码就能切换回去,之后直接调用lines()即可:
# 设置1行2列布局 par(mfrow = c(1, 2)) # 绘制第一个散点图 plot(1:10, rnorm(10), main = "散点图") # 绘制第二个饼图 pie(c(3, 5, 2), main = "饼图") # 切换回第一个绘图区域 par(mfg = c(1, 1, 1, 2)) # 添加红色线条 lines(1:10, 1:10, col = "red", lwd = 2)
方法2:用dev.set()切换绘图页(适合简单布局)
按顺序绘制子图时,每个子图会被分配一个“页码”,第一个子图对应页码1,第二个对应2。可以用dev.cur()查看当前激活的页码,再用dev.set(页码)切换:
par(mfrow = c(1, 2)) plot(1:10, rnorm(10), main = "散点图") pie(c(3,5,2), main = "饼图") # 切换到第一个绘图页 dev.set(1) # 添加蓝色线条 lines(1:10, 1:10, col = "blue", lwd = 2)
关键注意点
- 确保
lines()的x、y数据范围和散点图的坐标轴范围匹配,否则线条可能超出显示区域看不到。 - 如果之后需要回到第二个饼图区域,同样用
par(mfg=c(1,2,1,2))或者dev.set(2)即可。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

