#r #ggplot2 #geom-bar
#r #ggplot2 #геометрическая панель
Вопрос:
Я изучаю geom_bar в разделе 3.7 r4ds.had.co.nz . Я запускаю код, подобный этому:
library(ggplot2)
ggplot(data = diamonds) geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
Тогда у меня есть этот график:
Дело в том, что если я исключу часть «group = 1»:
library(ggplot2)
ggplot(data = diamonds) geom_bar(mapping = aes(x = cut, y = ..prop..))
График будет неправильным,
Но если я заменю group = 1 на group = 2 или group = «x», график по-прежнему выглядит правильно. Поэтому я не совсем понимаю значение group = 1 здесь и как его использовать.
Ответ №1:
group="whatever"
является «фиктивной» группировкой для переопределения поведения по умолчанию, которое (здесь) заключается в группировании по cut
и, как правило, группируется по переменной x. По умолчанию geom_bar
используется группировка по переменной x, чтобы отдельно подсчитывать количество строк на каждом уровне переменной x. Например, здесь по умолчанию будет geom_bar
возвращать количество строк, cut
равное «Справедливому», «Хорошему» и т. Д.
Однако, если нам нужны пропорции, нам нужно рассмотреть все уровни cut
вместе. На втором графике данные сначала группируются по cut
, поэтому каждый уровень cut
рассматривается отдельно. Доля честного в справедливом составляет 100%, как и доля Хорошего в хорошем и т.д. group=1
(или group="x"
и т.д.) предотвращает это, так что пропорции каждого уровня разреза будут относительно всех уровней разреза.
Комментарии:
1. Означает ли это, что они эквивалентны?
geom_bar(mapping = aes(x = cut, y = after_stat(prop), group=1))
иgeom_bar(mapping = aes(x = cut, y = after_stat(count/sum(count))))
?
Ответ №2:
Группа поможет графику просмотреть конкретные строки, содержащие конкретный разрез, и пропорция будет найдена по отношению ко всей базе данных как пропорция идеального разреза во всем наборе данных.
Если group не используется, пропорция вычисляется относительно данных, содержащих это поле, и в конечном итоге в любом случае будет равна 100%. Например, доля идеального разреза в данных, специфичных для идеального разреза, будет равна 1.