时间序列图的计数器图

时间:2014-06-30 19:06:02

标签: r graph ggplot2 time-series counter

以下数据

time<- c(1:10)
age<- c(11:20)
dummy<-c(0,0,1,0,0,0,0,0,0,0)
d<- data.frame(time, age,dummy)

我想创建一个图形,其中包含10个水平堆叠的矩形,跨越图形的宽度,矩形的颜色对应于dummy = 1映射的年龄,以及打印的年龄标签。看起来像 enter image description here

我创建了一系列时间序列的截面图,并希望创建并自动显示“计数器”,这将显示我的时间位置。这个“计数器”图表将堆叠在另一个上面,更复杂,图表,都连接到计数器变量。

问题:

使用ggplot2创建此类图表的最佳策略是什么?

1 个答案:

答案 0 :(得分:1)

至少这是一个开始。我将使用geom_time绘制正方形

library(ggplot2)

ggplot(d, aes(x=factor(time), y=factor(1), fill=factor(dummy))) +
   geom_tile(color="black") + 
   geom_text(data=subset(d, dummy==1), aes(x=factor(time), y=factor(1), label=age)) + 
   scale_fill_manual(values=c("0"="white", "1"="green"), guide="none")  +
   scale_x_discrete(expand=c(0,0)) +  scale_y_discrete(expand=c(0,0)) +
   theme_minimal()

enter image description here