如何使用ggplot2在R中按时间序列绘制时间段的变量

时间:2015-11-15 22:53:08

标签: r ggplot2

我想使用ggplot2创建一个时间序列图,其中随时间变化绘制变量。但是,对于每个时间段,我想绘制该期间的累计计数。例如:

set.seed(123)
frame <- data.frame(id = sort(rep(c(0:5), 5)),year = rep(c(2000:2005), 5), y = sample(0:1,30, replace = TRUE))
table(frame$year, frame$y)
ggplot(frame, aes(x = year, y = y)) + geom_point(shape = 1) # Not right

我最终会喜欢这样生成这样的情节:

count<- table(frame$year, frame$y)[,2]
plot(2000:2005, count, type = "l")

enter image description here

我是ggplot的新手,任何指针都会非常感激。谢谢。

2 个答案:

答案 0 :(得分:1)

您基本上缺少程序中的一行。您需要一个返回年份y变量之和的数据框。

set.seed(123)
frame <- data.frame(id = sort(rep(c(0:5), 5)),year = rep(c(2000:2005), 5), y = sample(0:1,30, replace = TRUE))
table(frame$year, frame$y)
newFrame <-aggregate(frame$y, list(frame$year),sum)
ggplot(frame, aes(x = newFrame$Group.1, y = newFrame$x)) + geom_point(shape = 1) # Better

答案 1 :(得分:1)

尝试:

library(ggplot2)
library(dplyr)
frame %>% group_by(year) %>% summarise(sum = sum(y)) %>% 
ggplot(aes(x = year, y = sum)) + geom_line()

enter image description here