Я работаю с набором данных mpg из пакета ggplot2. Я застрял с этим вопросом:

Постройте медиану переменных cty и hwy в зависимости от типа топлива (двумерная гистограмма). Расположите обе оси x в порядке возрастания или убывания.

Я только что построил гистограмму для топлива, но не смог построить медиану cty и hwy. Вот мой код:

libray(ggplot2)

ggplot(mpg, aes(factor(fl)))+
  geom_bar()
0
cloud123 19 Апр 2020 в 14:15

1 ответ

Подход с использованием фасетирования может выглядеть так. Я просто вычислил медианы, используя group_by + summarise_at. Затем я упорядочиваю фактор fl по cty (дает тот же порядок, что и упорядочивание по hwy). Наконец, я конвертирую df в длинный формат и рисую. Вы также можете отказаться от аспекта и иметь обе переменные на одном графике.

library(tidyverse)

mpg %>% 
  group_by(fl) %>% 
  summarise_at(vars(cty, hwy), median) %>%
  mutate(fl = forcats::fct_reorder(fl, cty)) %>% 
  tidyr::pivot_longer(-fl) %>% 
  ggplot(aes(factor(fl), value, fill = name)) + 
  geom_col(position = "dodge") +
  facet_wrap(~ name) + 
  guides(fill = FALSE)

Создано в 2020-04-19 с помощью пакета представительских программ (v0.3.0)

0
stefan 19 Апр 2020 в 14:41