Я хотел бы показать общее количество переменной по месяцам для разных подгрупп - PullRequest
1 голос
/ 22 марта 2019

Я хотел бы использовать ggplot2 и dplyr, чтобы создать диаграмму, которая может показать, как наши залы работают за месяцы. Поэтому с августа по декабрь я хотел бы видеть три бара для каждого из трех залов и их итоги.

У меня есть подготовленные данные, но я не могу понять, как это сделать с помощью пакета ggplot2.

#Events by Hall
fall2 <- fall %>% 
  group_by(Hall,Month) %>%
  summarize(total = sum(Count))

#something like this?
ggplot(Fall2, aes(Hall, Month)) + 
  geom_col(aes(fill = total), position = "dodge") +
  guides(fill=FALSE) + 
  ggtitle("Fall Events by Hall")

вот мои данные

fall2 <- structure(list(Hall = c("1959E", "1959E", "1959E", "1959E", "1959E", 
"2109 F", "2109 F", "2109 F", "2109 F", "2109 F"), Month = c("August", 
"December", "November", "October", "September", "August", "December", 
"November", "October", "September"), total = c(2, 4, 5, 11, 8, 
1, 3, 8, 7, 4)), row.names = c(NA, -10L), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), vars = "Hall", drop = TRUE, indices = list(
    0:4, 5:9), group_sizes = c(5L, 5L), biggest_group_size = 5L, labels = structure(list(
    Hall = c("1959E", "2109 F")), row.names = c(NA, -2L), class = "data.frame", vars = "Hall", drop = TRUE))

В конце я хотел бы, чтобы ось х показывала разные месяцы, и в течение каждого месяца она делится на «Холл». В идеале, если бы это было по убыванию по графу, это было бы лучше.

1 Ответ

2 голосов
/ 23 марта 2019

Редактировать: изменено в порядке убывания количества для каждого месяца, используя метод здесь: https://drsimonj.svbtle.com/ordering-categories-within-ggplot2-facets

Вы, наверное, хотите, чтобы ваши месяцы были в порядке. В настоящее время они являются символьной переменной, которая будет сортировать по алфавиту. Строка fct_relevel здесь превращает их в упорядоченный множитель, так что ggplot знает порядок использования. (Между прочим, есть, вероятно, менее удобный способ их преобразования, но я не знаю, как это происходит ...)

# library(tidyverse)  # Loads all three and a few more
library(dplyr); library(forcats); library(ggplot2)
fall2$Month <- fall2$Month %>% fct_relevel("August", "September", "October", "November", "December")
fall2 <- fall2 %>%
  ungroup() %>%    # EDIT -- source data grouped
  arrange(Month, -total) %>%
  mutate(order = row_number())

#something like this?
ggplot(fall2, aes(order, total)) + 
  geom_col(aes(fill = total), position = "dodge") +
  guides(fill=FALSE) + 
  ggtitle("Fall Events by Hall") +
  facet_wrap(~Month, nrow = 1, scales = "free_x") +
  scale_x_continuous(breaks = fall2$order, labels = fall2$Hall,expand = c(0,0))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...