如何使用ggplot创建堆栈条形图

时间:2018-03-20 15:53:41

标签: r ggplot2

我有一个数据集如下:

A   B   C
1   1   1
0   1   1
1   0   1
1   0   1

我想要一个堆栈条形图,在一个图中显示其他列旁边的每列中的1和0的百分比。

2 个答案:

答案 0 :(得分:3)

您需要采取以下几个步骤:

  • 计算每个变量有多少个零和一个
  • 计算相对百分比(您未在问题中定义此内容)
  • 从宽到长的回流数据(使用tidyr::gather
  • 使用ggplot的{​​{3}}
  • 绘图

答案 1 :(得分:1)

首先,您需要整理数据

library(tidyr)

A = c(1,0,1,1)
B = c(1,1,0,0)
C = c(1,1,1,1)

data = data.frame(A,B,C)
data = gather(data, key = type, value = val)

然后计算您的统计数据

library(dplyr)
perc = group_by(data, type) %>% summarise(perc = sum(val)/length(val))

完成情节

library(ggplot2)
ggplot(perc) + aes(x = type, y = perc) + geom_bar(stat = "identity")