Как сделать гистограмму, используя ggplot, который использует несколько столбцов для оси X? - PullRequest
0 голосов
/ 07 апреля 2019

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

Я пробовал итерации этого:

 ggplot(aes( x = names, y = count)) + geom_bar()

Я попытался объединить значения x, которые я хочу показать с aes(c(col1, col2)) но длина эстетики не совпадает и не будет работать.

library(dplyr)
library(ggplot2)
head(dat)

  Sample Week Response_1 Response_2 Response_3 Response_4 Vaccine_Type
1      1    1        300          0       2000        100            1
2      2    1        305          0        320         15            1
3      3    1        310          0        400         35            1
4      4    1        400          1        410         35            1
5      5    1        405          0        180         35            2
6      6    1        410          2        800         75            2


 dat %>%
  group_by(Week) %>%
  ggplot(aes(c(Response_1, Response_2, Response_3, Response_4)) +
  geom_boxplot() +
  facet_grid(.~Week)

dat %>%
  group_by(Week) %>%
  ggplot(aes(Response_1, Response_2, Response_3, Response_4)) +
  geom_boxplot() +
  facet_grid(.~Week)

> Error: Aesthetics must be either length 1 or the same as the data
> (24): x

Обе из них не удалось (что-то вроде ожидаемого на основе кода ошибки длины aes), но, надеюсь, вы знаете направление, к которому я стремился, и можете помочь.

Цель состоит в том, чтобы иметь 4 отдельные группы, каждая из которых имеет собственный бокс-лист (по 1 на каждый ответ). А также иметь их граненые на неделю.

1 Ответ

0 голосов
/ 08 апреля 2019

Использование простого кода ниже получило в основном то, что я хочу. К сожалению, я не думаю, что было бы так просто включить точки и другие характеристики в график, как вы можете с помощью ggplot.

boxplot(dat[,3:6], use.cols = TRUE)

И я могу довольно легко просто фильтровать по разным неделям и использовать mfrow для огранки. Не так информативно, как ggplot, но выполняет свою работу. Если у кого-то есть другие обходные пути, мне было бы интересно посмотреть.

enter image description here

...