Изменение размера полей между разными графиками на одном графике

Я хочу построить эти 3 графика в один график, используя приведенную ниже команду компоновки. К сожалению, поля между графиком 1 и 2 довольно велики. Я уже пробовал команду "heights=c()", но не хочу менять соотношение между обоими графиками. Я хотел бы иметь одинаковый размер для обоих графиков, поэтому просто уменьшите расстояние между ними, но я еще не нашел адекватного решения, и я не уверен, как здесь использовать команду par(mar).

layout(matrix(c(1,1,3,2,2,3),2,3,byrow=TRUE))
hist(Data$X,breaks=16,prob=TRUE,xlab="X",ylab="Density",main="",ylim=c(0.000,0.040))
axis(side=1,at=seq(40,120,10),labels=seq(40,120,10))
lines(density(Data$X,na.rm=TRUE), col="blue", lwd=2)
lines(density(Data$X,na.rm=TRUE, adjust=2),lty="dotted",col="darkgreen", lwd=2)
qqnorm(Data$X,main="")
boxplot(Data$X)

Большое спасибо за вашу помощь. Есть ли возможность вместо этого использовать ggplot с aes()?

Большое спасибо!

Тор


person Thore    schedule 29.05.2015    source источник
comment
Я не могу воспроизвести ваш код, начните пробовать ?par и посмотрите на параметр mar.   -  person SabDeM    schedule 29.05.2015
comment
Я думаю, что это фактически дубликат stackoverflow.com/questions/13239986/.   -  person bgoldst    schedule 30.05.2015


Ответы (1)


Мне кажется, что избыточное пустое пространство полностью вызвано комбинацией верхнего и нижнего полей между нижними и верхними цифрами. Поиграв с mar, мне кажется, что вы можете исправить это, просто уменьшив верхнее и нижнее поля с их значений по умолчанию c(5,4,4,2)+0.1 до c(4,4,1,1)+0.1 (примечание: я также немного уменьшил правое поле для ровности) (примечание: поскольку вы не свой Data не привожу, я его синтезировал из нормального дистрибутива):

set.seed(1); Data <- data.frame(X=rnorm(100,80,15))
par(mar=c(4,4,1,1)+0.1)

layout(matrix(c(1,1,3,2,2,3),2,3,byrow=TRUE))
hist(Data$X,breaks=16,prob=TRUE,xlab="X",ylab="Density",main="",ylim=c(0.000,0.040))
axis(side=1,at=seq(40,120,10),labels=seq(40,120,10))
lines(density(Data$X,na.rm=TRUE), col="blue", lwd=2)
lines(density(Data$X,na.rm=TRUE, adjust=2),lty="dotted",col="darkgreen", lwd=2)
qqnorm(Data$X,main="")
boxplot(Data$X)

сюжет

person bgoldst    schedule 29.05.2015
comment
Спасибо. Чрезмерные поля возникли из-за «скрытой метки x», после установки верхних полей для нижнего графика на другое значение (4) и полного удаления метки x с первого графика это сработало. Я не знаю, как этот ярлык исчез, но все равно спасибо. - person Thore; 01.06.2015