首页 > 解决方案 > 基于R中范围的分组直方图

问题描述

我有一个这种格式的数据集,我想制作一个分组直方图和范围,即10-20, 20-30, ..., 90-100.

   group weight
1  A     54
2  A     55
3  B     52
4  B     53
5  C     60

我尝试了以下方法来生成直方图,但不确定如何在 X 轴上制作权重范围。

ggplot(df, aes(x = weight)) +
  geom_histogram(aes(color = gp), fill = "white",
                 position = "identity", bins = 30) +
  scale_color_manual(values = c("red", "blue", 'green'))

在此处输入图像描述

我实际上需要一个如下所示的直方图

在此处输入图像描述

标签: rggplot2histogram

解决方案


那是条形图,而不是直方图。这是一种重现它的方法:

library(dplyr)

df %>%
  mutate(weight_class = cut(weight,
                            breaks = seq(20, 60, by = 10))) %>%
  ggplot() +
    geom_bar(aes(x = weight_class, fill = group), position = "dodge") +
    scale_fill_manual(values = c("red", "blue", "green"))


推荐阅读