我有一个数据集如下:
A B C
1 1 1
0 1 1
1 0 1
1 0 1
我想要一个堆栈条形图,在一个数字中显示其他列旁边的每列中 1 和 0 的百分比。
您需要执行几个步骤:
- 计算每个变量有多少个零和一
- 计算相对百分比(您没有在问题中定义这一点
- 从宽到长回流数据(使用
tidyr::gather
( - 使用
ggplot
geom_bar
的情节
首先,您需要整理数据
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")