用ggplot2中的百分比绘制直方图

时间:2013-09-19 17:39:39

标签: r ggplot2

我试图使用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)。

1 个答案:

答案 0 :(得分:2)

这是你想要的吗?我假设你的数据框叫做df:

# 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())

enter image description here