R ggplot Гистограмма группы показывает сумму двух групп - PullRequest
0 голосов
/ 04 мая 2020

Я попытался отобразить распределение своего набора данных испытаний и поездов в гистограмме и обнаружил кое-что любопытное:

Справочная информация: у меня есть набор тестов с 50 строками и набор тренировок с 100 строками каждый с та же самая структура столбца.

Обычно я строю такие данные:

plot2 <- ggplot(data=Donald_1) + 
  geom_histogram(aes_string(x = "Alter", y = "..count..", fill = "Group"),
                 bins=20, alpha=0.7)

, что приводит к правильной гистограмме, показанной ниже. Затем мне стало интересно, как может получиться, что тест имеет больший счет, чем тренировка, поскольку набор тестов составляет всего 50 строк вместо 100. И кажется, что тестовые столбцы показывают сумму тестовых и тренировочных баров на левом графике.

Затем я попытался:

plot1 <- ggplot() +
  geom_histogram(data=Donald_1 %>% filter(Group == "Training"),
                 aes_string(x="Alter", y="..count..", fill = "Group"),
                 bins=20, alpha=0.7) +
  geom_histogram(data=Donald_1 %>% filter(Group == "Test"),  
                 aes_string(x="Alter", y="..count..", fill="Group"),
                  bins=20, alpha=0.7)

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

Теперь я задаюсь вопросом, почему первая попытка не не приводит к тому же сюжету, что и вторая попытка. Я что-то упускаю здесь очевидное?

The result of the code side by side

1 Ответ

1 голос
/ 04 мая 2020

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

Более того, возможно, вы предпочтете эту:

plot3 <- ggplot(data=Donald_1) + 
  geom_histogram(aes_string(x = "Alter", y = "..count..", fill = "Group"),
                 bins=20, alpha=0.7, position="dodge")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...