添加 "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)
我正在尝试绘制特定时间点两组之间 "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)