Использование mtext
для получения меток глобальной оси - хорошая идея. Вы также можете сделать это с легендой. Для меток тиков я бы рекомендовал повернуть их на 90 °. Следовательно, общая читаемость должна была улучшиться. (Может быть даже лучше настроен, чем мое решение).
Сначала мы помещаем матрицы в список и используем barplot
в lapply
для сохранения ввода.
L <- list(mxCarabooda=mxCarabooda, mxNeerabup=mxNeerabup, mxNowergup=mxNeerabup)
В опции par
мы включаем oma
для увеличения внешних полей и xpd
для размещения текста и легенд в любом месте. В barplot
мы отключаем ось x и добавляем их вручную. Используйте сжатие без потерь , установив compression="lzw"
.
tiff("barplot.tiff", width=260, height=100, units='mm', res=300, compression="lzw")
par(mfrow=c(1,3), mar=c(5, 4, 4, 2) + 0.1, oma=c(6, 4, 0, 0), xpd=TRUE)
lapply(seq_along(L), function(x) {
b1 <- barplot(L[[x]], main=gsub("^mx", "", names(L)[x]), beside=TRUE, xaxt="n",
col=c("gray63","gray87"), ylim=c(0,30))
axis(1, at=apply(b1, 2, mean), labels=colnames(L[[x]]),
tick=FALSE, line=FALSE, las=2)
})
mtext('Change in water table at each level of GW cut', side=1, outer=TRUE, line=1) # x-lab
mtext('Profit loss ($m)', side=2, outer=TRUE, line=1) # y-lab
legend(-16.5, -15, bty="n", legend=c('Loss in GM','Loss in adjusted GM'),
col=c("gray63","gray87"), cex=1.2, pch=15, horiz=TRUE, xpd=NA)
dev.off()
Результат
Однако, чтобы решение работало, мне нужно было как минимум удвоить размер tiff
, потому что поля рисунка слишком велики. Тем не менее, соотношение сторон остается прежним, что должно быть важнее . Не могли бы вы проверить это в своем журнале? Возможно, вы могли бы также использовать pdf("barplot.pdf", width=13, height=5)
вместо строки tiff(.)
.
Данные
mxCarabooda <- structure(c(13.47258, 7.430879, 13.47151, 7.53012, 14.83685,
8.940968, 15.37691, 9.617533), .Dim = c(2L, 4L), .Dimnames = list(
c("ChangeNP", "ChangeNP.1"), c("Sl-2 0.1", "S2-3 0.055",
"S3-4 0.056", "S4-5 0.056")))
mxNeerabup <- structure(c(3.499426, 2.232676, 3.499596, 2.239664, 3.836086,
2.566649, 3.995115, 2.725839), .Dim = c(2L, 4L), .Dimnames = list(
c("ChangeNP", "ChangeNP.1"), c("Sl-2 0.1", "S2-3 0.055",
"S3-4 0.056", "S4-5 0.056")))
mxNowergup <- structure(c(3.5135, 1.700544, 3.513586, 1.710387, 3.850266, 2.034689,
4.009113, 2.194351), .Dim = c(2L, 4L), .Dimnames = list(
c("ChangeNP", "ChangeNP.1"), c("Sl-2 0.02", "S2-3 0.01",
"S3-4 0.02", "S4-5 0.02")))