首页 > 解决方案 > 如何使用 par(new=T) 在循环中绘图?

问题描述

我想使用 par(new=T) 为两个循环中的几个国家绘制两组值(来自不同的数据集但针对相同的国家)。然而,R 覆盖了从最后一个国家开始的第二组数据。在这里你可以看到结果 https://www.dropbox.com/s/9x0dn7oom5czpwm/Rplot02.jpg?dl=0

这是我的代码,仅作为 2 个国家/地区的示例(我有 28 个)。

par(mfrow=c(2,2))
par(mar = c(5,5,5,5), cex.axis=1)
for (i in colnames(DPreachdifft[,2:3])) {
  plot(DPreachdifft$Diff, DPreachdifft[[i]],
       type="p",col="red", xaxt="n", yaxt="n", 
       ylim = range(c(-25, 25)),
       xlim = rev(range(DPreachdifft$Diff)),
       ylab="delay(+) or advance(-) in years", xlab=NA, pch=16,
       main = i, adj=0)
  axis(side = 1, at=ticks,labels=ticks) 
  axis(side = 2)
  abline(h=0)
}
par(new=T)
for (i in colnames(NPreachdifft[,2:3])) {
  plot(NPreachdifft$Diff1, NPreachdifft[[i]],
  type="p",col="blue", xaxt="n", yaxt="n",
  ylim = range(c(-40, 40)),
  xlab=NA, ylab=NA, pch=16)
axis(side = 3, at=ticks1)
mtext(side = 1, text="difference in DP", line = 2, adj = 0.5)
mtext(side = 3, text="difference in NP", line = 2, adj = 0.5)
}

标签: r

解决方案


推荐阅读