【发布时间】:2022-08-05 23:45:50
【问题描述】:
假设我在 tibble activity 中有一些数据,其中有一列 activity$time 记录了某些事件的时间。假设此数据包含两个不同的采样周期,一个从 5:00 到 9:00,一个从 7:00 到 11:00。由于这些时间段重叠,因此 7:00 到 9:00 之间的事件比其他时间段高出 2 倍。如果我要制作这样的密度图:
ggplot(activity) + geom_density(mapping = aes(x = time))
那么与真实反映现实的情况相比,中心将向上倾斜。我如何告诉geom_density() 诸如“将此间隔加权 0.5 倍”之类的东西,或者更好的是,提供任意加权函数?
这是一些演示重叠效果的代码。 runif() 应该会产生均匀分布,但是因为我有两个重叠的部分,所以中间有一个更高的高原:
set.seed(27036459)
activity <- tibble(time = c(runif(10000, 5, 9), runif(10000, 7, 11)))
ggplot(activity) + geom_density(mapping = aes(x = time))
我想要的是一种采用activity 的方法,并利用我对采样间隔的了解,以某种方式调整图表以表示现象的实际分布,与采样偏差无关(在这种情况下,runif() 的均匀性) .
-
您可以添加一个可重现的示例吗?您可以使用
dput()发布您的数据。