我试图使用ggplot2绘制直方图,y轴为百分比,x轴为数值。
我的数据和脚本的示例如下所示(下图),并持续约100,000行(或更多)。
A B
0.2 x
1 y
0.995 x
0.5 x
0.5 x
0.2 y
ggplot(data, aes(A, colour=B)) + geom_bar() +stat_bin(breaks=seq(0,1, by=0.05)) + scale_y_continuous(labels = percent)
我想知道在A值的每个bin中分配的B值的百分比,而不是每个A值的B值的数量。
现在的代码给我一个y轴,ymax为15000. y轴应该是百分比(0-100)。
答案 0 :(得分:2)
# calculate proportions of B for each level of A
df2 <- as.data.frame(with(df, prop.table(table(A, B))))
df2
# A B Freq
# 1 0.2 x 0.1666667
# 2 0.5 x 0.3333333
# 3 0.995 x 0.1666667
# 4 1 x 0.0000000
# 5 0.2 y 0.1666667
# 6 0.5 y 0.0000000
# 7 0.995 y 0.0000000
# 8 1 y 0.1666667
ggplot(data = df2, aes(x = A, y = Freq, fill = B)) +
geom_bar(stat = "identity", position = position_dodge())