Что именно означает stat = identity в geom_bar ggplot? - PullRequest
0 голосов
/ 09 марта 2020

Я работаю над чужой работой и не могу понять цель этой строки кода:

ggplot(data, aes(x = Group, y = Value)) + geom_bar(stat="identity", position = "dodge", lwd = 1,  aes(fill = Group))

Вот пример данных

   Group  Value
1    A      20
2    B      74
3    B      50
...
n    A      24

Я думаю, что Цель используемого кода состояла в том, чтобы построить гистограмму, суммирующую значение группы A и группы B. Однако я полагаю, что гистограмма построена для каждого элемента группы A и группы B, и все эти столбцы перекрываются и только максимальное значение каждой группы показано. Это тот случай? Я думаю, что цель состояла в том, чтобы составить сводную статистику c, либо среднее значение, либо медиану, а не построить график всего и только увидеть максимум.

Если это не то, что происходит, я был бы признателен любому помочь понять, что означает использование stat = 'identity' при чтении документации, мне не очень помогло.

Спасибо

1 Ответ

2 голосов
/ 09 марта 2020

По умолчанию geom_bar() аналогично дискретной версии geom_histogram(). Без stat = "identity" он выполняет статистическое преобразование stat_bin(Group), которое подсчитывает количество наблюдений при каждом значении Group, затем генерируется переменная count, которая автоматически отображается на оси y и представляется высотой столбцов. , Поэтому будет неверно указывать aes(y) без stat = "identity", поскольку переменная yy вычисляется как geom_bar(), а не указывается вами. stat = "identity" полезно, когда вы не хотите, чтобы высота столбцов была числом вашей переменной x, а какой-то столбец значений в ваших данных, поэтому geom_bar() просто ничего не будет делать и будет ждать, пока вы предоставите переменную y.

Если вы хотите построить сводную статистику c для каждого Group, и эта сводка не является счетчиком наблюдений, вам придется использовать group_by(Group) + summarize(mean(value) / median(value)) перед построением графика. А затем используйте stat = identity и aes(x = Group, y = summary), где summary - это столбец, который вы хотите отобразить

...