我的数据: https://app.box.com/s/dmmlhl37qn7ua5thbh2m5fmfakz3ctsw 数据集就像:
> head(data)
timestamp Type
1 10:56:00 a
2 10:56:00 a
3 08:30:00 a
4 06:56:00 a
5 17:11:00 a
6 16:55:00 a
我想要一个曲线图显示整个24小时的频率。不同的Type:a,b,c
用不同的线表示,例如:
我用如下的直方图来做到这一点:
但是如何用曲线图显示不同的类型? 非常感谢。
答案 0 :(得分:0)
data <- read.csv("test2.csv")
library(lubridate)
#Get ranges
tt <- unique(data$Type)
xlim <- c(Inf,-Inf)
ymax <- 0
for(i in 1:length(tt)) {
t1 <- density(period_to_seconds(hms(data$timestamp[data$Type==tt[i]])))
xlim[1] <- min(c(xlim[1],t1$x))
xlim[2] <- max(c(xlim[2],t1$x))
ymax <- max(c(ymax,t1$y))
}
plot(NA, type="n", xlim=xlim, ylim=(c(0,ymax)), xlab="Seconds", ylab="Density")
#Plot the densities
for(i in 1:length(tt)) {
lines(density(period_to_seconds(hms(data$timestamp[data$Type==tt[i]]))), col=i)
}
legend("topleft", legend=tt, col=seq_along(tt), lty=1)