2015-05-29 40 views
-1

我想用下面的佈局命令將這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()來代替?

非常感謝!

Thore

+0

我無法重現你的代碼,開始嘗試'par',有一個看看'mar'?參數。 – SabDeM

+0

我認爲這實際上是http://stackoverflow.com/questions/13239986/avoid-wasting-space-when-placing-multiple-aligned-plots-onto-one-page的副本。 – bgoldst

回答

0

似乎對我來說,過量的空白完全由下之間和超過數字頂部和底部邊緣的組合引起的。從與mar玩弄,它看起來像我可以解決這個問題,只需將頂部和底部邊距從默認c(5,4,4,2)+0.1減少到c(4,4,1,1)+0.1(注意:爲了均勻性,我也稍微減少了右邊距)(注意:因爲您沒有「T提供您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) 

plot

+0

謝謝。在將較低繪圖的上邊距設置爲另一個值(4)並從第一個繪圖中刪除x標籤完全起作用後,「隱藏x標註」會產生過多的邊距。我不知道這個標籤如何消失,但謝謝你。 – Thore

相關問題