Чтобы добавить в решение Henriks, достаточно удобный способ использования функции par ():
jpeg(filename="somefile.jpg")
op <- par(mfrow=c(2,2)
#plot the plots you want
par(op)
dev.off()
Таким образом, вы возвращаете параметры в старое состояние после запуска кода. Помните о том, что это НЕ верно, если один из графиков дал ошибку.
Помните о том, что R всегда размещает графики в одном и том же порядке. Использование mfrow заполняет сетку построчно. Если в коде вы используете mfcol вместо mfrow, столбец за столбцом заполняется.
Макет - это совсем другая история. Здесь вы можете определить, в каком порядке должны быть расположены участки. Так что layout(matrix(1:4,nrow=2)
делает то же самое, что и par(mfcol=c(2,2))
. Но layout(matrix(c(1,4,3,2),ncol=2))
помещает первый график слева, следующий справа внизу, третий справа и последний слева внизу.
Каждый сюжет полностью независим, поэтому заголовки, которые вы указываете с помощью опции main
, также печатаются. Если вы хотите иметь больше гибкости, вы должны взглянуть на графики решетки.