Мосты с высотой, рассчитанной на счет

Как мне изменить масштабирование ggridges так, чтобы график вел себя больше как гистограмма, а не как график плотности ядра? То есть я хотел бы, чтобы рисунок отражал разный размер категориальной переменной.

Например

library(tidyverse)
library(ggridges)

data(mpg)    

mpg %>% 
  mutate(
    drv = drv %>% 
      fct_reorder(
        cty
        )
    ) %>% 
  ggplot(
    aes(cty, drv)
    ) +
  geom_density_ridges(
    stat = "binline", 
    scale = .8
    )

проблема здесь в том, что r категория mpg$drv имеет только 25 наблюдений, в то время как оба f а также 4 иметь более 100 наблюдений каждый. Я хочу, чтобы высота фигуры отражала количество наблюдений в каждой точке.

1 ответ

Решение

Как ни странно, ваш заголовок по сути является решением. Вы хотите включить height = ..count.. в вашем aes()

mpg %>% 
  mutate(
    drv = drv %>% 
      fct_reorder(
        cty
      )
  ) %>% 
  ggplot(
    aes(cty, drv, height = ..count..)
  ) +
  geom_density_ridges(
    stat = "binline", 
    scale = .8
  )

Что дает вам следующее: ht tps://stackru.com/images/65cb2518d0b7c8994f1f8a7d4da3a8594f5d7491.png

Другие вопросы по тегам