2

ggplotgeom_histogram并且geom_density两者都期望x美学,其中每个都将查看变量在其域中的发生率。

我有一个函数可以输出某些分布域和发生率(即不以可数形式呈现事件,而是以已经计数的形式)。

实际值集来自外部库,因此将在此处设置一个示例。我想绘制这个分布:

data <- data.frame(depth=seq(0,20), incidence=seq(0,20)^1.5)
ggplot() + geom_density (aes(x=depth, y=incidence), data=data, fill='lightblue')

以上不起作用。当然,我可以单独使用 x=depth 或 x=incidence 并生成一个图,但是,两者都不正确,因为 x 变量被认为是我们正在计算事件的变量。

我想到可以获取数据框并为每个深度生成行,其中行数对应于发生率#。这在部分发生率下变得更加复杂,但可以扩展。

问题:有没有办法在给定发生率而不是事件的情况下在 ggplot 中生成密度图?如果没有,我想可以使用类似的东西:

c (apply (data, 1, function(r) rep(r[1], r[2])), recursive=TRUE)

生成事件的离散近似值。ggplot 中的直接方式会更好。

4

1 回答 1

0

显而易见的事情是

qplot(depth, data = data, weight = incidence, geom = "histogram", binwidth = 1)

如果你需要这样做,geom_histogram那么它会稍微长一点

ggplot(data , aes(x = depth)) + 
       geom_histogram(binwidth = 1, aes(weight = incidence))

生产

在此处输入图像描述

于 2012-08-19T16:39:37.207 回答