2013-03-06 60 views
1

我一直有麻煩使得我的R圖的圖具有相等的寬度和#個折點。R使直方圖具有相等的寬度和#個折點

目前,我有

hist(result1,xlim=c(2,4),breaks=10) 
abline(v=pi,col="red") 
hist(result2,xlim=c(2,4),breaks=10) 

我想jutapose在彼此的頂部2倍的圖形與酒吧,同一軸線#和酒吧相同的寬度。

奇怪的是,當我設置休息= 10時,頂部圖形偶爾會有比底部更多的橫槓,它們的寬度不相等。我沒有正確理解這些間歇參數嗎?

+1

這是最好的:在你的答案中,你有一個使用基本圖形,一個使用ggplot2,一個使用ggplot2以更復雜的方式。 – 2013-03-06 22:20:37

回答

2

我一直認爲這個問題你描述棘手,處理過了,一般如果你的數據有很大的不同,你可能無法做你想要什麼。即便如此,你可能會使用ggplot2版顯卡有更好的運氣:

library('ggplot2') 
qplot(x = carat, data = diamonds, geom = "histogram", binwidth = 0.1) 

如果這種方法會爲你工作,你可以做以下獲得兩個地塊,一個在另一個之上:

library('grid') 
a <- qplot(x = carat, data = diamonds, geom = "histogram", binwidth = 0.1) 
b <- qplot(x = carat, data = diamonds, geom = "histogram", binwidth = 0.1) 

vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y) 
grid.newpage() 
pushViewport(viewport(layout = grid.layout(2, 1))) 
print(a, vp = vplayout(1,1)) 
print(b, vp = vplayout(2,1)) 
3

我猜你是對彼此頂部繪製兩個柱狀圖:

par(mfrow=c(2,1)) 

對於固定的休息,我建議:

bins <- seq(2, 4, by=0.1) 

hist(results1, breaks=bins, xlim=c(2,4)) 
hist(results2, breaks=bins, xlim=c(2,4)) 
3

我認爲使用ggplot2小平面對這種情節是很好的。讓我們來創建一些數據:

carat1 = diamonds 
carat1$id = "one" 
carat2 = diamonds 
carat2$id = "two" 
carat2 = within(carat2, { carat = carat * 1000 }) 
carat_comb = rbind(carat1, carat2) 

讓我們做一個情節:

ggplot(aes(x = carat), data = carat_comb) + 
    geom_histogram() + facet_wrap(~ id, ncol = 1) 

enter image description here

爲了使這一陰謀的工作時,X軸是完全不同的,就是告訴ggplot的軸值可以獨立確定:

ggplot(aes(x = carat), data = carat_comb) + geom_histogram() + 
    facet_wrap(~ id, ncol = 1, scales = "free_x") 

enter image description here

相關問題