我可以使用lattice
包在R中绘制相对频率直方图:
a <- runif(100)
library(lattice)
histogram(a)
我想在ggplot
中获得相同的图形。我尝试过
dt <- data.frame(a)
ggplot(dt, aes(x = a)) +
geom_bar(aes(y = ..prop..))+
scale_y_continuous(labels=percent)
但是它不能那样工作。我应该在代码中更改什么?对我来说,在图形之前计算相对频率不是一个选择。
答案 0 :(得分:3)
您需要直方图,而不是条形图,所以:
ggplot(dt, aes(x = a)) +
geom_histogram(aes(y = stat(count) / sum(count)), bins = 8) +
scale_y_continuous(labels = scales::percent)
lattice
:
ggplot2
:
您会看到,两种算法的分箱算法工作稍有不同。
答案 1 :(得分:-1)
您可以尝试类似:
ggplot(data=df, aes(x=a)) + geom_bar(aes(y = (..count..)/sum(..count..)), group = 1)