Недавно я случайно обнаружил странное поведение в ggplot2.Следующий код
N <- 1000
coin <- rep(c(0,1),N/2)
N1 <- sum(coin)
N0 <- sum(1-coin)
values <- rep(0,N)
values[coin==0] <- rnorm(N0,mean=0,sd=1)
values[coin==1] <- rnorm(N1,mean=0,sd=1)
dat = data.frame('Value'=values,'Category'=as.factor(coin))
создает набор данных с одним числовым столбцом и одним столбцом фактора с равным количеством событий, принадлежащих каждой из двух категорий:
> summary(dat)
Value Category
Min. :-3.901785 0:500
1st Qu.:-0.669807 1:500
Median : 0.020031
Mean :-0.008229
3rd Qu.: 0.650803
Max. : 3.195819
Однако, когдаПри построении столбца «Значение» с разбивкой по категориям категория 1 выглядит гораздо более нормализованной, чем категория 0:
ggplot(dat,aes(x=Value,fill=Category)) + geom_histogram(alpha=0.5) + theme_bw()

Это выглядит очень странно.Ширина бинов для обеих гистограмм выглядит одинаковой, как и должно быть, но общее количество событий не равно, как должно быть.Гистограмма категории 0 фактически является гистограммой всего набора данных:
ggplot(dat,aes(x=Value)) + geom_histogram(alpha=0.5) + theme_bw()

Это ошибка ggplot2, или я делаю какую-то ошибкуЯ не заметил?(Я получаю то же самое, если я заменяю категории 0 и 1 на «A» и «B»).
Сведения о системе:
- Mac OS X High Sierra
- R версия 3.4.0 (2017-04-21)
- ggplot2_2.2.1