R ggplot2多列的条形图

时间:2015-04-11 13:18:06

标签: r ggplot2

这看起来很简单,但有一些根本我没有到达这里。我有一个数据框,每月有一些事件的计数作为列,每年作为行。像这样:

season  sep oct nov dec jan feb
2000    2   7   47  152 259 140
2001    1   5   88  236 251 145
2002    2   14  72  263 331 147
2003    5   6   71  207 290 242

首先,我想创建一个季节的条形图。例如,对于2000年的季节,条形图显示每个月的值作为垂直条(唉,没有足够的重复点来发布示例的图像)。我猜我需要以某种方式重塑我的数据?

最终我想创建一个由小组组成的图表,每个季节一个。

请注意我发现了类似的帖子,但由于问题不明确,帖子过于复杂。

2 个答案:

答案 0 :(得分:4)

library(reshape2)
library(ggplot2)
df_m <- melt(df, id.vars = "season")

为了绘制一个季节(例如2000年)

ggplot(subset(df_m, season == "2001"), aes(x = variable, y = value)) +
geom_bar(stat = "identity")

对于facet包装的图表集试试:

ggplot(df_m, aes(x = variable, y = value)) + geom_bar(stat = "identity") +
facet_wrap(~season)

enter image description here

答案 1 :(得分:1)

这是 tidyr / dplyr 方法:

if (!require("pacman")) install.packages("pacman")
pacman::p_load(dplyr, tidyr, ggplot2)

dat %>%
    gather(month, value, -season) %>%
    ggplot(aes(y = value, x = month)) +
    geom_bar(stat = "identity") +
    facet_wrap(~season)

enter image description here