ggplot2:原始数据的条形图,周围有聚合框
ggplot2: bar plot of raw data with frame around aggregated
我正在尝试根据原始数据创建堆积条形图,其中每组因子变量可能有多个条目,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 执行此操作?
当然可以手动调用summarize:
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 会自动进行聚合,然后绘制聚合值,而不是分别绘制每个单独的条目。
这可能吗?
stat_summary()
可以即时处理这些类型的摘要。
您只需指定要汇总的几何图形和函数。这里我们还需要明确的说要堆叠条形以防止重叠。
ggplot(data, aes(x = "Observation", y = value, fill = age,)) +
stat_summary(geom = "bar", fun.y = "sum", position = "stack")
我正在尝试根据原始数据创建堆积条形图,其中每组因子变量可能有多个条目,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 执行此操作?
当然可以手动调用summarize:
ggplot(data %>% group_by(age) %>% summarize(value = sum(value)),
aes(x = "Observation", y = value, fill = age)) +
geom_bar(stat = "identity", colour = "black")
所以理想情况下,ggplot / geom_bar 会自动进行聚合,然后绘制聚合值,而不是分别绘制每个单独的条目。 这可能吗?
stat_summary()
可以即时处理这些类型的摘要。
您只需指定要汇总的几何图形和函数。这里我们还需要明确的说要堆叠条形以防止重叠。
ggplot(data, aes(x = "Observation", y = value, fill = age,)) +
stat_summary(geom = "bar", fun.y = "sum", position = "stack")