Как создать групповую диаграмму в R - PullRequest
0 голосов
/ 30 октября 2018

Я хотел создать сгруппированную гистограмму в R. Однако используемый в настоящее время код создает гистограмму с накоплением. Я хочу два бара для каждого дня недели. Один столбец показывает первую строку данных, а другой - второй ряд данных. Кто-нибудь знает, как это сделать?

#  Sample CSV data
x <- read.csv(text="month, mon, tues, wed, thurs, fri, sat, sun
  9, 1, 3, 5, 7, 1, 2, 2
  9, 1, 6, 8, 1, 1, 2, 3")


library(ggplot2)
# x <- read.csv("checkinlobby.csv")
y <- data.matrix(x)
barplot(y)

1 Ответ

0 голосов
/ 30 октября 2018

Вот мое решение:

1-й) Создайте новый столбец, который позволит нам передать его в аргумент заполнения.

2nd) Измените данные с широких на длинные, чтобы упростить ggplot.

3-й) Сделайте переменную дня фактором и измените ее порядок

4-й) Участок с использованием позиции = "уклонение"

library(tidyverse)

#  Sample CSV data
x <- read.csv(text="month, mon, tues, wed, thurs, fri, sat, sun
              9, 1, 3, 5, 7, 1, 2, 2
              9, 1, 6, 8, 1, 1, 2, 3")


##
graph <- x %>% mutate(rows = 1:nrow(x)) %>%
  gather(day, measure, -month, -rows) %>%
  mutate(day = factor(day,
  levels = c("mon","tues","wed","thurs", "fri", "sat","sun"))) %>%
  ggplot(aes(x = day, y = measure, fill = as.character(rows))) +
  geom_col(position = "dodge")

graph
...