r语言 - 如何使用 ggplot 创建堆栈条形图



我有一个数据集如下:

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")

最新更新