我有一个数据框“count”,如下所示:
# Date Code Number_of_events
#1 01-04 022003 5
#2 01-06 022003 9
#3 01-08 022003 3
#4 01-11 022003 2
#5 01-13 022003 5
#...
#3754 03-11 396001 4
#3755 03-16 396001 4
#3756 03-21 396001 17
#3757 03-22 396001 23
#3758 03-23 396001 3
我得到的是日期和代码聚合df的结果:
count<-aggregate(.~ Date+Code,data=df,FUN=sum)
我想做一个事件数量(y)与日期(x)的条形图,每个代码都是一个系列(因此是彩色条形图)。知道事件不会在完全相同的日期发生。
有人可以帮我这个吗?谢谢
答案 0 :(得分:1)
我们可以使用barplot
barplot(xtabs(Number_of_events~Code + Date, df),
beside = TRUE, legend = TRUE, col = c("red", "blue"))
或使用ggplot
library(dplyr)
library(ggplot2)
df %>%
group_by(Date, Code) %>%
summarise(Number_of_events = sum(Number_of_events)) %>%
ggplot(., aes(x= Date, y = Number_of_events)) +
geom_bar(aes(fill= factor(Code)), position = "dodge", stat = "identity")
答案 1 :(得分:1)
您可以使用ggplot2
包,其中包含方便的geom_bar()
功能。
模拟一些数据:
# simulate some data
N <- 100
df <- data.frame(Date = sample(seq(as.Date("2000/1/1"), by = "month", length.out = 48), N, T),
Code = sample(c(022003, 396001, 441002), size = N, replace = T),
Number_of_events = rpois(N, 5))
#aggregate
count <- aggregate(.~ Date+Code,data=df,FUN=sum)
这是为了绘图:
library(ggplot2)
ggplot(count, aes(x=Date, y=Number_of_events)) +
geom_bar(aes(fill=as.factor(Code)), color="black", stat="identity", position="stack")