到目前为止,我错过了一个在 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 中的值是如何分箱的。这意味着除非您摆弄 binwidthstat_bin 参数,否则图形不会相同。

关于r - qplot/ggplot 中带分数的直方图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7790788/

10-12 17:13