R:y轴上的geom_density值

机器算法验证 r ggplot2
2022-01-19 09:33:04

为什么 geom_density 在密度图中向我显示高于 1 的值?如何将其更改为分数?

在此处输入图像描述

我的代码用来生成情节

ggplot(data = input2, aes(x = r.close)) +
  geom_density(aes(y = ..density.., fill = `Próba`), alpha = 0.3, stat = "density", position = "identity") +

  xlab("y") + ylab("density") +
  theme_bw() +
  theme(plot.title=element_text(size = rel(1.6), face = "bold"),
        legend.position = "bottom",
        legend.background = element_rect(colour = "gray"),
        legend.key = element_rect(fill = "gray90"),
        axis.title = element_text(face = "bold", size = 13)) 
2个回答

或者您可以只使用提供的计算..scaled..stat_density

library(ggplot2)

set.seed(1)
vals1 <- rbeta(1000, 0.5, 0.1)
vals2 <- rbeta(1000, 0.25, 0.3)

gg <- ggplot(data.frame(x=c(vals1, vals2),
                        grp=c(rep("a", 1000), rep("b", 1000))))
gg <- gg + geom_density(aes(x=x, y=..scaled.., fill=grp), alpha=1/2)
gg <- gg + theme_bw()
gg

在此处输入图像描述

看起来geom_density()正在显示适当的值。整条曲线下的面积应为 1。

要估计某些值的概率,您必须在“y”轴上的一个区间内进行积分,并且值永远不应大于 1。