R(ggplot2)中的时间序列中的时间序列,每次都有多个值?

Dav*_*ave 3 r time-series ggplot2

假设我的数据包括我离开家的时间和上班时间.我会有一些重复的值:

08:00, 20
08:04, 25
08:30, 40
08:20, 23
08:04, 22
Run Code Online (Sandbox Code Playgroud)

有些数字会重复(如08:04).我想要做的是运行散点图,该散点图在x轴上正确缩放,但每个条目允许这些多个值,以便我可以查看趋势.

是时间序列甚至是我想要使用的?我已经能够绘制每次都有一个值的时间序列图,并且我已经绘制了多个值但没有时间序列缩放.谁能提出一个好的方法?ggplot2的偏好但我会采用标准的R绘图,如果它更容易.

Jul*_*ora 5

首先让我们准备更多数据

set.seed(123)
df <- data.frame(Time = paste0("08:", sample(35:55, 40, replace = TRUE)), 
                 Length = sample(20:50, 40, replace = TRUE), 
                 stringsAsFactors = FALSE)
df <- df[order(df$Time), ]
df$Attempt <- unlist(sapply(rle(df$Time)$lengths, function(i) 1:i))
df$Time <- as.POSIXct(df$Time, format = "%H:%M") # Fixing y axis
head(df)
    Time Length Attempt
6  08:35     24       1
18 08:35     43       2
35 08:35     34       3
15 08:37     37       1
30 08:38     33       1
38 08:39     38       1
Run Code Online (Sandbox Code Playgroud)

据我了解,您希望保留相同离开时间的观察顺序.起初我忽略了这一点并得到了这样的散点图:

在此输入图像描述

ggplot(data = df, aes(x = Length, y = Time)) + 
  geom_point(aes(size = Length, colour = Length)) + 
  geom_path(aes(group = Time, colour = Length), alpha = I(1/3)) + 
  scale_size(range = c(2, 7)) + theme(legend.position = 'none')
Run Code Online (Sandbox Code Playgroud)

但考虑三个维度(Time,LengthAttempt)散点图不再可以向我们展示的所有信息.我希望我理解正确,这就是你要找的东西:

在此输入图像描述

ggplot(data = df, aes(y = Time, x = Attempt)) + geom_tile(aes(fill = Length))
Run Code Online (Sandbox Code Playgroud)