ggplot geom_bar: значение aes (группа = 1)
Я изучаю geom_bar в разделе 3.7 r4ds.had.co.nz. Я запускаю такой код:
library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
Тогда у меня есть этот сюжет: ![click here]()
Дело в том, что если я исключу часть "group = 1":
library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop..))
Сюжет будет неверным, ![like this]()
Но если я заменю group = 1 на group = 2 или group = "x", график все равно будет выглядеть правильно. Так что я не совсем понимаю значение группы = 1 здесь и как ее использовать.
Ответы
Ответ 1
group="whatever"
- это группировка "dummy", чтобы переопределить поведение по умолчанию, которое (здесь) состоит в группировке с помощью cut
и, как правило, группируется по переменной x. По умолчанию для geom_bar
следует группировать по переменной x, чтобы отдельно подсчитывать количество строк на каждом уровне переменной x. Например, здесь по умолчанию будет geom_bar
возвращать число строк с cut
равным "Ярмарка", "Хорошее" и т.д.
Однако, если мы хотим пропорции, нам нужно рассмотреть все уровни cut
вместе. Во втором графике данные сначала группируются с помощью cut
, поэтому каждый уровень cut
рассматривается отдельно. Доля Fair in Fair составляет 100%, равно как доля Good in Good и т.д. group=1
(или group="x"
и т.д.) Предотвращает это, так что пропорции каждого уровня разреза будут относиться ко всем уровни разреза.
Ответ 2
Группа поможет графику взглянуть на конкретные строки, которые содержат определенный разрез, и найдена пропорция по отношению ко всей базе данных как пропорция идеального разреза во всем наборе данных.
Если группа не используется, пропорция рассчитывается по отношению к данным, содержащим это поле, и, в конечном счете, в любом случае будет равна 100%. Например, доля идеального разреза в конкретных данных идеального разреза будет равна 1.