3

家を出る時間と、仕事に行くまでの分数からなるデータがあるとします。いくつかの繰り返し値があります。

08:00, 20
08:04, 25
08:30, 40
08:20, 23
08:04, 22

また、一部の数字は繰り返されます (08:04 など)。私がやりたいことは、x 軸で正しくスケーリングされているが、トレンドを表示できるようにエントリごとにこれらの複数の値を許可する散布図を実行することです。

時系列は私が使いたいものでもありますか? 時間ごとに 1 つの値を持つ時系列グラフをプロットすることができました。複数の値がプロットされましたが、時系列のスケーリングはありませんでした。誰でも良いアプローチを提案できますか? ggplot2 を優先しますが、簡単な場合は標準の R プロットを使用します。

4

1 に答える 1

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

私が理解しているように、あなたは同じ家を出る時間の観察の順序を維持したいと考えています。最初はそれを無視して、次のような散布図を得ました。

ここに画像の説明を入力

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')

しかし、3 次元 ( TimeLengthおよびAttempt) の散布図を考慮すると、すべての情報を表示することはできなくなります。私はあなたを正しく理解したことを願っています。これがあなたが探しているものです:

ここに画像の説明を入力

ggplot(data = df, aes(y = Time, x = Attempt)) + geom_tile(aes(fill = Length))
于 2012-09-11T20:01:12.143 に答える