添加 "flow" 到 geom_bar

Add "flow" to geom_bar

我正在尝试绘制特定时间点两组之间 "flow" 的个体。

在下面的例子中:

d1=data.frame(c(1:6),
              c("A","B","A","A","B","A"),
              c("A","B","B","A","B","B")
              )

names(d1)=c("id","time1","time2")

require(reshape2)
m1=melt(d1,id.vars="id")

require(ggplot2)
ggplot(m1,aes(x=variable,fill=value))+
  geom_bar(stat="count",width = 0.5)

在观察 "time1" 和 "time2" 之间从 A 组到 B 组编号为 3 和 6 "switch" 的个体。我正在寻找绘制此图的可能性。已尝试 geom_polygon 但未成功。

这是我喜欢得到的:
2 个人留在组 A 和 2 个人切换到组 2.

这里可以看到一个更复杂的例子:两次选举之间的选民流动。

[2] http://cdn1.salzburg24.at/2013/05/Waehlerstroeme-650x435.jpg

有没有办法用 ggplot 实现这个?

谢谢 aosmith!

这产生了我预期的结果:

require(alluvial)

d2=aggregate(d1[,2], 
             by= d1[, c('time1','time2')], 
             FUN=function(x) length(x))

names(d2)[3]="Freq"

alluvial(d2[,1:2],freq=d2$Freq)