R 根据频率生成堆叠条形图

R 根据频率生成堆叠条形图,r,bar-chart,R,Bar Chart,我有这样一个数据框: head(mydata) id GeoBefore GeoAfter 1 A A 2 B B 3 A B 4 B A 5 A A 6 B B 我想画一个有两列的堆叠条形图,GerBefore和GeoAfter,我想显示有多少个a,B,等等。。。每个酒吧里都有咖啡 我正在努力做到: g

我有这样一个数据框:

head(mydata)
id GeoBefore GeoAfter
1          A        A
2          B        B
3          A        B
4          B        A
5          A        A
6          B        B
我想画一个有两列的堆叠条形图,GerBefore和GeoAfter,我想显示有多少个a,B,等等。。。每个酒吧里都有咖啡

我正在努力做到:

gb <- cbind(mydata$GeoBefore, "2014")
ga <- cbind(mydata$GeoAfter, "2015")
geo <- as.data.frame(rbind(gb,ga))
colnames(geo) <- c("value", "period")
head(geo)
barplot(geo,
   legend.text=geo$period,
   args.legend=list(bty="n",horiz=TRUE),
   col=brewer.pal(5,"Set1"),border="white",
   main="Title")
未经测试

library(ggplot2)
ggplot(geo, aes(x = period, fill = value)) +
  geom_histogram()
您可以通过以下方式完成此操作:

ans <- cbind(table(mydata$GeoBefore),table(mydata$GeoAfter))

colnames(ans) <- c("GeoBefore","GeoAfter")

barplot(ans,legend.text = rownames(ans))
ans
ans <- cbind(table(mydata$GeoBefore),table(mydata$GeoAfter))

colnames(ans) <- c("GeoBefore","GeoAfter")

barplot(ans,legend.text = rownames(ans))