以下数据
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映射的年龄,以及打印的年龄标签。看起来像
我创建了一系列时间序列的截面图,并希望创建并自动显示“计数器”,这将显示我的时间位置。这个“计数器”图表将堆叠在另一个上面,更复杂,图表,都连接到计数器变量。
使用ggplot2创建此类图表的最佳策略是什么?
答案 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()