Я пытаюсь создать столбчатую диаграмму с накоплением из необработанных данных, где каждый набор переменных факторов может иметь несколько записей, а значения y должны быть суммой всех таких записей.Выполнение обычного geom_bar на первый взгляд выглядит хорошо, но кажется, что каждая исходная запись отображается в виде отдельного прямоугольника, сложенного друг на друга.Это выглядит нормально, пока вы не захотите нарисовать рамку вокруг каждой части гистограммы:
library(tidyverse)
data = tibble(
age = factor(c(2, 3, 3, 3, 2, 2)),
value = c(30, 5, 15, 14, 29, 9)
)
ggplot(data, aes(x = "Observation", y = value, fill = age)) +
geom_bar(stat = "identity", colour = "black")
То, что я на самом деле хочу, это один кадрвокруг бирюзы и один прямоугольник вокруг красных частей.Как я могу сделать это с ggplot напрямую?
Конечно, можно вручную вызвать суммирование:
ggplot(data %>% group_by(age) %>% summarize(value = sum(value)),
aes(x = "Observation", y = value, fill = age)) +
geom_bar(stat = "identity", colour = "black")
Но это необходимо отрегулировать для каждогоразличный выбор переменных осей, что будет непросто, так как я работаю с ~ 15 факторами измерений и должен создать десятки диаграмм с разными факторами переменных для каждой из осей (включая facet_grid).
Так что в идеале ggplot / geom_bar будет автоматически выполнять агрегацию, а затем выводить агрегированное значение, а не каждую отдельную запись в отдельности.Это возможно?