Y-Axis barplot 和 base plot 的位置不匹配

Y-Axis positions of barplot and base plot do not match

我试图绘制气候图并 运行 解决以下问题: 在使用 barplot(...) 进行降水后,我叠加了另一个温度图。对于气候图来说,两个 y-axes(mm,°C)在零处对齐并且 precipitation/temperature 比率是 2:1(例如 20mm 降水对应 10°C)是必要的。

问题:barplot(...) 将轴绘制到绘图的框,而 plot(...) 在框和轴边距之间留下一些 space。

这是一个简化的例子。从网格线可以看出 0 值没有对齐:

barplot(0:10)
  grid(col=1)
par(new=TRUE)
plot(0:10, xlim=c(-2,14), axes=FALSE)
  axis(4,at=c(0:10), labels=c(0:10))

如何获得两个轴的正确位置和缩放比例?

不要使用 par(new = TRUE):

barplot(0:10)
grid(col=1)
lines(0:10, type = "p")
axis(4,at = c(0:10), labels = seq(0,20,2))

函数lines()在这里是正确的。绘制点需要参数 type = p。 您需要调整温度的 y 值,但我认为现在第二个 y 轴的方向正确。