я столкнулся следующим сценарий ...Гистограмма binwidth (в) соответствие между базовой графикой и ggplot2
Следующий код производит 2 идентичной гистограмму:
library(ggplot2)
data("diamonds")
ggplot(diamonds, aes(x=price)) + geom_histogram(binwidth=1000)
qplot(price, data = diamonds, binwidth = 1000)
Однако, я не понимаю, как они выводят первый бар/бин слева, на самом деле вся гистограмма кажется мне неправильной.
С другой стороны:
hist(diamonds$price,breaks = seq(0,20000, by=1000))
производит следующий график, который кажется мне правильным:
Для проверки достоверности данных, я побежал этот код:
br = seq(0,20000,by=1000)
ranges = paste(head(br,-1), br[-1], sep=" - ")
freq = hist(diamonds$price, breaks = br, include.lowest=TRUE, plot=FALSE)
data.frame(range = ranges, frequency = freq$counts)
и производит:
range frequency
1 0 - 1000 14524
2 1000 - 2000 9683
3 2000 - 3000 6129
4 3000 - 4000 4225
5 4000 - 5000 4665
...
Итак, откуда эта первая балка/корзина в ggplot
или qplot
?
Спасибо @ eipi10. Однако, похоже, что ggplot всегда находится на 0 для первого бара. Если я это сделаю: ggplot (алмазы, aes (x = цена)) + geom_histogram (binwidth = 500), график начинается с 0 (в центре на 250). Это не кажется последовательным, есть ли причина этого? – Perceptron
Когда я устанавливаю 'binwidth = 500', первый бит центрируется на 500 и идет от 250 до 750. Я точно не знаю, как работает алгоритм установки ggplot bin, но он пытается центрировать бит на ноль если есть хотя бы одно значение в ячейке с центром в нуле (учитывая любую ширину бина, которую пользователь выбирает, или бинарность по умолчанию (которая рассчитана по умолчанию по 30 бункеров) в противном случае). – eipi10