正如我在 5 小时前的评论中所说,有一种方法可以解决所有定位问题,使用 mtext();只是我不知道这是否是最好的解决方案。但是,已经 5 个小时了,还没有答案,所以我决定发布我的。
放置“Temperatures”、“Precipitations”和“Winter”没有困难,但放置“Spring”、“Summer”和“Autumn”需要一些调整。以下模板代码 中的变量offset 控制这种调整。 offset = -14.5 接近最佳,当我在以下位置生成图形时:
jpeg(file = "template.jpeg", width = 600, height = 600, quality = 100)
## template code
dev.off()
根据您的情节大小,您需要根据需要调整/重置offset。
模板代码
## set plot layout, inner margin and outer margin
par(mfrow=c(4,2), mar = c(1.5,2.5,1.5,2.5), oma = c(3,4,3,4))
## plot 1
plot(1:5, ann = FALSE, xaxt = "n")
axis(4, at = axTicks(4))
axis(1, at = axTicks(1), labels= NA)
## plot 2
plot(1:5, ann = FALSE, xaxt = "n")
axis(4, at = axTicks(4))
axis(1, at = axTicks(1), labels= NA)
## plot 3
plot(1:5, ann = FALSE, xaxt = "n")
axis(4, at = axTicks(4))
axis(1, at = axTicks(1), labels= NA)
## plot 4
plot(1:5, ann = FALSE, xaxt = "n")
axis(4, at = axTicks(4))
axis(1, at = axTicks(1), labels= NA)
## plot 5
plot(1:5, ann = FALSE, xaxt = "n")
axis(4, at = axTicks(4))
axis(1, at = axTicks(1), labels= NA)
## plot 6
plot(1:5, ann = FALSE, xaxt = "n")
axis(4, at = axTicks(4))
axis(1, at = axTicks(1), labels= NA)
## plot 7
plot(1:5, ann = FALSE)
axis(4, at = axTicks(4))
## plot 8
plot(1:5, ann = FALSE)
axis(4, at = axTicks(4))
## write text on outer margins
mtext("Temperatures (°C)", 2, outer = TRUE, line = 2, font = 2)
mtext("Precipitation (mm)", 4, outer = TRUE, line = 2, font = 2)
mtext("Winter", 3, outer = TRUE, line = 0, font = 2)
## needs tuning on `offset`
offset <- -14.5
mtext("Spring", 3, outer = TRUE, line = offset, font = 2)
mtext("Summer", 3, outer = TRUE, line = 2 * offset, font = 2)
mtext("Autumn", 3, outer = TRUE, line = 3 * offset, font = 2)