2017-08-14 15 views
2

私は日々のデータを分析して、いつ値が下がるのかを確認しています。私は毎日をカテゴリ変数に設定しているため、毎日を区別することができます。しかし、私は、以下に示すように、連続する1つのグラフの代わりに、毎日を別の日の上にプロットする必要があります。Rはxts、zoo、POSIXctからのみ抽出する時間です

Plot

データが設定され、次のように

    Value  Day 
2013-01-03 01:55:00 0.35435715 1 
2013-01-03 02:00:00 0.33018654 1 
2013-01-03 02:05:00 0.38976118 1 
2013-01-04 02:10:00 0.45583868 2 
2013-01-04 02:15:00 0.29290860 2 

私の現在のggplotコードは次のとおりです。誰もが私は私のxを変えることができますどのように私を導くことができるかどう

g <- ggplot(data = Data, aes(x = Index, color = Dates)) + 
    geom_line(y = Data$Value) + 
    scale_x_datetime(date_breaks = TimeIntervalForGraph, date_labels = "%H") + 
    xlab("Time") + 
    ylab("Random value") 

私は本当にいただければ幸いです時間軸を24時間にして、同じグラフ上に毎日プロットして、24時間の間に値が下がったことを確認することができます。事前に感謝します。

方法が試み: 私は以下のコードいくつかの理由で、didntの仕事を唯一の時間と第3列を作成してみました:

time <- format(index(x), format = "%H:%M")) 
data <- cbind(data, time) 

答えて

3

あなたがその日の各時間のデータを要約する方法が必要です。ここでは、おそらく探しているいくつかのアプローチがあります:

library(xts) 
library(data.table) 
library(ggplot2) 

tm <- seq(as.POSIXct("2017-08-08 17:30:00"), by = "5 mins", length.out = 10000) 
z <- xts(runif(10000), tm, dimnames = list(NULL, "vals")) 

DT <- data.table(time = index(z), coredata(z)) 
# note the data.table syntax is different: 
DT[, hr := hour(time)] 

# Plot the average value by hour: 
datByHour <- DT[, list(avgval = mean(vals)), by = c("hr")] 

# Use line plot if you have one point per hour: 
g <- ggplot(data = datByHour, aes(x = hr, y = avgval, colour = avgval)) + 
    geom_line() 


datByHour <- DT[, list(avgval = mean(vals)), by = c("hr")] 
# visualise the distribution by hour: 
g2 <- ggplot(data = DT, aes(x = hr, y = vals, group = hr)) + 
    geom_boxplot() 
2

(ここで私は取っています次のことを試してみて、それが動作するかどうか私に教えてください与えられたとしてtm時間列):

Data$tm = strftime(Data$tm, format="%H:%M:%S") 

library(ggplot2) 
ggplot(Data, aes(x = tm, y = Value, group = Day, colour = Day)) + 
    geom_line() + 
    theme_classic() 
+0

私は次のエラーメッセージですべてのNAを得た: 警告メッセージ:merge.xtsで (...、すべて=全て、埋める=記入し、サフィックス= suffixes): 強制で導入されたNA – blackknight316

+0

'dput()'を使ってデータを投稿できますか? – AK88

+0

をリクエストしてください。 構造(C(1357189200、1357189500、1357189800 ..... 1357620600、1357620900)、 TZONE = "アメリカ/ニューヨーク"、 TCLASSの= Cの( "POSIXct"、 "POSIXt"))、 .indexCLASS = C ( "POSIXct"、 "POSIXt")、 .indexTZ = "America/New_York"、 tclass = c( "POSIXct"、 "POSIXt")、 tzone = "America/New_York"、class = c( "xts" 、 "動物園")) – blackknight316

関連する問題