2015-11-02 62 views
2

我正在試圖製作一個複合圖,該圖的頂部有一個直方圖,底部有一個點圖。他們應該以相同的比例顯示數據,所以我希望比例匹配。R格:獲取標繪區域相同

下面是一些代碼,幾乎做什麼,我想:

ability <- rnorm(50) 
parameters <- data.frame(Item=paste("Q",1:10),Difficulty=rnorm(10)) 
xrange<- range(c(ability,parameters$Difficulty)) 

print(histogram(ability,endpoints=xrange,xlim=xrange*1.04), 
     position=c(0,.68,1,1),more=TRUE,newpage=TRUE) 
print(dotplot(Item~Difficulty,parameters,xlim=xrange*1.04), 
     position=c(0,0,1,.7)) 

下面是這個函數histogram+dotplot

的問題是在這兩個功能不太排隊刻度線的輸出。這兩個圖爲左側的刻度分配不同的空間量,直方圖右側刻度,而點圖則沒有。我無法弄清楚如何改變這種情況(我懷疑它被埋在了尺度參數的某處)。

此外,使用打印和位置是有點kludgy,有沒有更好的更一般的方法來做到這一點。

在此先感謝。

+0

如果你願意使用'ggplot' [這裏有幾個例子](http://stackoverflow.com/questions/8545035/scatterplot-with-marginal-histograms-in-ggplot2)。 – chappers

回答

0

我想通了,如何做到這一點的基礎R顯卡:

layout(matrix(c(1,2),2,1,byrow=TRUE),heights=c(1,3)) 
par(mar = c(3.1, 4.1, 3.1, 2.1)) 
hist(ability,xlim=xrange*1.2,xlab="",col="cyan") 
par(mar = c(3.1, 4.1, 0.1, 2.1)) 
dotchart(parameters$Difficulty,parameters$Item,xlim=xrange*1.2,main="") 

這產生了我所需要的。