Переменная binwith в geom_histogram () - PullRequest
0 голосов
/ 28 мая 2020

Мне нравится настраивать разную ширину бинов в ggplot2.

В качестве примера я использую набор данных

library(Stat2Data)
data("YouthRisk2007")
head(YouthRisk2007)
  ride.alc.driver female grade age4 smoke DriverLicense
1               1      1    10   15     1             0
2               1      1    10   18     1             1
3               1     NA    NA   NA    NA            NA
4               0      0    11   17     0             1
5               0      0    11   17     0             1
6               0      0    11   17     1             1

С

library(dplyr)
library(ggplot2)

YouthRisk2007 %>% 
    ggplot(aes(age4)) +
      geom_histogram(binwidth = 1)

вы генерируете гистограмма на каждый год.

Теперь мне нравится настраивать разную ширину бина (14-15 лет, 16-17 лет, 18 лет [ширина классов]), чтобы площадь была пропорциональна частоте ( не только высота мусорного ведра). Ширина бина должна изменяться визуально, а не только для подсчета частоты.

Моя первая идея заключалась в том, чтобы настроить ширину бина как вектор binwidth = c(2,3), но это не разрешено.

Есть ли способ для этого?

1 Ответ

0 голосов
/ 28 мая 2020

Если вы заранее знаете желаемые точки останова, вы можете использовать scale_x_binned(). Для этого требуется ggplot v3.3.0 +.

library(ggplot2)

ggplot(mtcars) +
  geom_bar(aes(mpg)) +
  scale_x_binned(breaks = c(10, 13, 15, 16, 25, 30))

Создано 28 мая 2020 г. с помощью пакета REPEX (v0.3.0 )

...