2012-05-09 45 views
3

我試圖圍繞爲什麼使用qplot的直方圖在添加facet_wrap時發生變化。所以,現在當使用facet_grid時ggplot2直方圖變化情節?

library(ggplot2) 
data <- read.csv("data.csv") 
data$cuts <- cut(data$y, c(0, 50, 100, 500, Inf)) 

我有這樣的:你可以找到我用這個例子中,數據here

我facet_grid的因素來自於使用cut

> summary(data) 
     y     x    cuts  
Min. : 10.00 Min. :0.000 (0,50] :530 
1st Qu.: 20.75 1st Qu.:1.000 (50,100] :179 
Median : 46.00 Median :1.000 (100,500]:258 
Mean : 110.18 Mean :0.834 (500,Inf]: 33 
3rd Qu.: 121.00 3rd Qu.:1.000     
Max. :1526.00 Max. :1.000     

如果我只看cuts=="(0,50]",它看起來很好的部分。:

qplot(x, data=subset(data, cuts=="(0,50]")) 

但是當我添加一個小網格,Y軸都錯了:

qplot(x, data=data) + facet_grid(cuts~., scales="free_y") 

注意,在頂部小y軸現在只有40ish代替超過450.似乎是正確的唯一方面是(500,Inf]

編輯:我使用ggplot 0.9.0中的R 2.14.2

+2

的影響可能是由於'GGPLOT2 0.9.0'一個已知的bug - [見這裏]( http://groups.google.com/group/ggplot2/browse_thread/thread/5bca619044956927)。新版本即將發佈,修正了該錯誤 - [請參閱此處](http://groups.google.com/group/ggplot2/browse_thread/thread/860293253a9d0cc8) –

回答

1

這似乎是ggplot facet_grid「忽略重複行」錯誤桑迪表示。一個簡單的解決辦法是添加這個飯桶線,

data$index = seq.int(1,1000,1) 

,使每一行獨特的,你得到你想要的東西。

3

ggplot 9.1在大約一天之前發佈,並在該軟件包發佈時考慮到了這一點。所以我的答案是下載ggplot2 0.9.1錯誤修復版本。

你也可能想在geom_histogramright參數發揮在:使用`facet_grid`時geom_histogram(binwidth = 0.2, right = TRUE) +