到目前为止,我错过了一个在 y 轴上有一个分数的直方图函数。像这样:
require(ggplot2)
data(diamonds)
idealD <- diamonds[diamonds[,"cut"]=="Ideal",]
fracHist <- function(x){
frac <- (hist(x,plot=F)$counts) / (sum(hist(x,plot=F)$counts))
barplot(frac)
}
### call
fracHist(idealD$carat)
它不是很漂亮,但基本上应该可以解释我想要什么:条形高度应该加起来为 1。另外,中断应该标记 x 轴。我很想用
ggplot2
but can't figure out how to get around plotting the frequencies of
frac instead of plotting
frac itself
创建相同的内容。all I get with `ggplot` is density...
m <- ggplot(idealD, aes(x=carat))
m + geom_histogram(aes(y = ..density..)) + geom_density()
最佳答案
解决方案是使用stat_bin
并映射美学y=..count../sum(..count..)
library(ggplot2)
ggplot(idealD, aes(x=carat)) + stat_bin(aes(y=..count../sum(..count..)))
从
?hist
的快速扫描中,我找不到 hist
中的值是如何分箱的。这意味着除非您摆弄 binwidth
的 stat_bin
参数,否则图形不会相同。关于r - qplot/ggplot 中带分数的直方图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7790788/