1.我正在处理调查数据,现在我正在尝试向堆叠条形图添加文本标签。我做错了什么?
# Sample Data
n <- 100
df <- data.frame(item = sample(paste("Item", 1:4), size=n, replace=TRUE),
value = sample(1:5, size=n, replace=TRUE))
# Create stacked barplot
df %>% group_by(item) %>%
count(value) %>%
mutate(percent = 1 / sum(n) * n,
answer = factor(value, ordered=TRUE)) %>%
ggplot(aes(x = item, y = percent, fill = fct_rev(answer))) +
geom_col() +
scale_y_continuous(labels = scales::percent) +
geom_text(aes(label = round(percent, 1))) +
labs(fill = "Answer")
1.我应该为每一项添加额外的平均值。有没有办法添加一个范围从1到5的次轴,并将每一项的平均值作为点添加到图中?(即使我知道,从统计学上来说,这有点可疑,因为100%并不真正对应于最大值5)
1条答案
按热度按时间e0bqpujr1#
您需要指定标签的位置;此时,您的代码将它们放置在各自的位置(即,0.2放置在y轴上的0.2处,0.3放置在y轴上的0.3处),但如果您添加
position = position_stack()
,则应解决您的第一个问题,例如:创建于2022年11月30日,使用reprex v2.0.2