R программирование ggplot2 - PullRequest
       15

R программирование ggplot2

0 голосов
/ 19 апреля 2020

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

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

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

libray(ggplot2)

ggplot(mpg, aes(factor(fl)))+
  geom_bar()

1 Ответ

0 голосов
/ 19 апреля 2020

Подход с использованием фасетирования может выглядеть так. Я просто вычислил медианы, используя 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)

...