2016-09-23 9 views
0

によりx軸をプロットするためにどのようにデータフレーム上でdfR:時間

 time value 
1 08:04  0 
2 08:12  0 
3 08:20 60 
4 08:28  0 
5 08:36  0 
6 08:44  0 
7 08:52  0 
8 09:00  0 
9 09:08  0 
10 09:16  0 
11 09:24  0 
12 09:32  0 
13 09:40  0 
14 09:48  0 
15 09:56  0 
16 10:04 100 
17 10:12 49 
18 10:20 49 
19 10:28 49 
20 10:36  0 
21 10:44  0 
22 10:52  0 
23 11:00  0 
24 11:08  0 
25 11:16  0 
26 11:24  0 
27 11:32  0 
28 11:40  0 
29 11:48  0 
30 11:56  0 
31 12:04  0 
32 12:12  0 
33 12:20  0 
34 12:28  0 
35 12:36  0 
36 12:44  0 
37 12:52  0 
38 13:00  0 
39 13:08  0 
40 13:16  0 
41 13:24  0 
42 13:32  0 
43 13:40  0 
44 13:48  0 
45 13:56  0 
46 14:04  0 
47 14:12  0 
48 14:20  0 
49 14:28  0 
50 14:36 91 
51 14:44 44 
52 14:52 43 
53 15:00 43 
54 15:08  0 
55 15:16  0 
56 15:24  0 
57 15:32  0 
58 15:40  0 
59 15:48 42 
60 15:56 41 
61 16:04 41 
62 16:12 41 
63 16:20 41 
64 16:28 42 
65 16:36 42 
66 16:44 42 
67 16:52 42 
68 17:00 42 
69 17:08 42 
70 17:16 42 
71 17:24 42 
72 17:32 41 
73 17:40 41 
74 17:48 41 
75 17:56 41 
76 18:04 40 
77 18:12 40 
78 18:20 40 
79 18:28 39 
80 18:36 39 
81 18:44 37 
82 18:52 37 
83 19:00 37 
84 19:08 37 
85 19:16 37 
86 19:24 33 
87 19:32 33 
88 19:40 33 
89 19:48 34 
90 19:56 34 
91 20:04 34 
92 20:12 50 
93 20:20 67 
94 20:28 36 
95 20:36 36 
96 20:44 36 
97 20:52 36 
98 21:00 36 
99 21:08 37 
100 21:16 39 
101 21:24 41 
102 21:32 42 
103 21:40 44 
104 21:48 46 
105 21:56 47 

を有する、df$timeは文字列であり、df$valueは整数です。

私はx軸として時刻をプロットし、1時間ごとにマークを付けたいと思います。それ、どうやったら出来るの?

これまでのところ、私はseq(df$time[1], df$time[length(df$time)], by = "hour")を推測しましたが、これはエラーを返します。

答えて

5

ベースRは、良い理由のために時間変数をサポートしません。たとえば、DSTのような厄介な癖です。 datetime変数を作成する必要があります。

df$datetime <- as.POSIXct(paste0("2016-09-23 ", df$time), tz = "GMT") 

library(ggplot2) 
ggplot(df, aes(x = datetime, y = value)) + 
    geom_point() + 
    scale_x_datetime(date_labels = "%H:%M", date_breaks = "1 hour") 

resulting plot

+0

なぜ、 'as.POSIXct(df $ time、format = '%H:%M'、tz = 'GMT')'はどうですか?それは 'フォーマット'または単に個人的な選択を避けるためですか? – Sotos

+0

時刻が '2016-06-28T23:48:00 + 01:00'の形式の場合どうなりますか – ogogmad

+1

@Sotos私は、再現性を高めるために日付を制御する方が好きです。 – Roland

1

マイ基本R及びlubridate溶液:

library(lubridate) 

h <- hour(hm(df$time)) 

plot(h, df$value) 

lubridatesがhm()は時間と分と時間を抽出h()関数でdf$timeの文字列を変換する関数。

関連する問題