首页 > 解决方案 > ggplot:创建相对堆叠直方图

问题描述

我设法从我的数据中创建了一个漂亮的直方图:

ggplot(df, aes(x = Score)) +
  geom_histogram(aes(fill = factor(Answer, levels=c("5", "4", "3", "2", "1", "NULL")))) +
  scale_x_continuous(limits = c(0,250)) +
  labs(x = "Score", y = "Count", fill="Answer")

产量: 在此处输入图像描述

然而,我真正想知道的是每个垃圾箱中每个答案的相对频率,而不是绝对数字。也就是说,我希望每个 bin 的高度为 1,填充表示该答案在该 bin 中的比例。

我谨慎乐观地认为这可能很容易做到,但我就是不知道怎么做。我很感激社区可以提供的任何帮助。

标签: rggplot2

解决方案


我不确定您是否真的可以再将其称为直方图,但 using 可以position = "fill"做到这一点。使用带有内置数据的示例:

ggplot(mtcars, aes(x = wt, fill = factor(cyl))) +
  geom_histogram(position = "fill")

在此处输入图像描述


推荐阅读