带有分类箱的ggplot在R

时间:2017-11-21 20:39:27

标签: r ggplot2

我需要使用ggplot x-axis绘制条形图,其中显示了bins(例如300-310,310-320,320-330等)和y轴中每个类别的“CAT”列的计数。

我是ggplot的新手。有人可以帮我用ggplot实现这个目的吗?

提前致谢。

Table:

YEAR    ID     Sep_wk1  Sep_wk2  Sep_wk3  Sep_wk4   Sep_wk5  CAT
1998   40015   300.05   310.11   320.65   301.25    315.82   0
1998   32014   310.25   315.85   330.25   350.25    341.56   1
1998   56525   315.56   355.25   410.85   411.25    450.25   1
1998   45012   400.65   325.23   300.25   356.25    311.25   0

1 个答案:

答案 0 :(得分:1)

首先,您需要重塑数据:

library(tidyverse)
df <- df %>%
gather(variable, value, - YEAR, -ID, -CAT)

第一个选项:

df <- mutate(df, CAT = as.character(CAT))
ggplot(df, aes(value, fill = CAT)) + 
geom_histogram(binwidth = 10, position = position_dodge())

第二个选项:

df <- df %>%
    mutate(value.buckets = cut_interval(value, length = 10))

df.CAT.buckets <- df %>%
    group_by(CAT, value.buckets) %>%
    summarise(count = n())

ggplot(df.CAT.buckets, aes(value.buckets, count, fill = CAT)) +
    geom_bar(stat = "identity", position = position_dodge())