【发布时间】:2020-03-10 12:55:56
【问题描述】:
我有一些样本数据(实际上这些是犯罪数据):
randomDatetime <- function(N, st="2018/01/01", et="2018/12/31") {
st <- as.POSIXct(as.Date(st))
et <- as.POSIXct(as.Date(et))
dt <- as.numeric(difftime(et,st,unit="sec"))
ev <- sort(runif(N, 0, dt))
rt <- st + ev
return(rt)
}
df <- data.frame(date=randomDatetime(1000))
现在,我想创建一个像这样的 KDE 绘图/热图:
x 轴上应该有日期(2018-01-01 到 2018-12-31),y 轴上应该有时间(00:00-23:59)。目标是显示特定犯罪类型在一天中的什么时间最常发生,以及不同的犯罪类型之间是否存在差异等。
现在,我的 y 轴有问题,因为我不知道如何只节省时间。例如,我可以计算自午夜以来的分钟数,但这对我来说似乎不是很优雅。
我想应该是这样的:
ggplot(aes(x = date, y = ??) data = df) +
geom_density_2d()+
scale_x_date(date_breaks = "months", date_labels = "%m", limits=as.Date(c("2018-01-01","2018-12-31")))
【问题讨论】: