我正试图解决为什么在添加facet_wrap时使用qplot的直方图发生变化的原因。您可以找到我用于此示例的数据here
我的facet_grid中的因素来自于使用cut
:
library(ggplot2)
data <- read.csv("data.csv")
data$cuts <- cut(data$y, c(0, 50, 100, 500, Inf))
现在我有了这个:
> 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轴现在只有40码而不是450.唯一似乎正确的方面是(500,Inf]
。
编辑:我在R 2.14.2中使用ggplot 0.9.0
答案 0 :(得分:3)
ggplot 9.1大约一天前发布,这个包已经在该软件包发布中得到了解决。所以我的答案是下载ggplot2 0.9.1错误修复版本。
此外,您可能希望使用right
中的geom_histogram
参数,如下所示:geom_histogram(binwidth = 0.2, right = TRUE) +
答案 1 :(得分:1)
似乎是桑迪指示的ggplot facet_grid“忽略重复行”错误。一个简单的解决方法是添加这个do-nothing行,
data$index = seq.int(1,1000,1)
让每一行都独一无二,你得到你想要的东西。