ggplot geom_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 = cause并生成一个图,但是,两者都不正确,因为x变量被认为是我们计算事件的变量。
我可以使用数据框并为每个深度生成行,其中行数对应于发生率#。这在分数发生率方面变得更加复杂,但可以扩展。
问题:有没有办法在给定发生率而不是事件的情况下在ggplot中生成密度图?如果没有,我想可以使用类似的东西:
c (apply (data, 1, function(r) rep(r[1], r[2])), recursive=TRUE)
生成事件的离散近似。 ggplot中的直接方式会更好。
答案 0 :(得分: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))
生产