0

2列のデータフレームがあります。ここで、最初の列にはデータが d/m/yh:m (1 年間) として保持され、2 番目の列には電気メーターの読み取り値が保持されます。例えば:

Date.Time           X
13/12/2014 12:00    164
13/12/2014 12:30    278
13/12/2014 13:00    159
13/12/2014 13:30    302
13/12/2014 14:00    249
13/12/2014 14:30    196
.
.
.
14/12/2014 00:00    137
14/12/2014 00:30    71
14/12/2014 01:00    116
14/12/2014 01:30    92

毎日30分ごとにヒートマップを描きたいです。を試しましpheatmapたがheatmap.2heatmap.3エラー メッセージはx' must be a numeric matrixです。これらの 2 つの列を使用してマップを描画できるか、または最初にデータを次のような 1 日のデータを示す 1 つの行に配置する必要があるかどうか疑問に思っています。

day         12:00 12:30 1:00 1:30
13/12/2014    164  278  159 302 ...
14/12/2014    160  178  129 602 ...

何か提案はありますか?ありがとうございました!

4

1 に答える 1

1

データをロング フォーマットからワイド フォーマットに変更する必要はありません。日付と時刻を分割して、別々の軸で使用できるようにするだけです。おもちゃのデータで行ったことは次のとおりです。

library(ggplot2)

# Make some toy data with a year's worth of observations on every half hour
df <- data.frame(date.time = seq(from = as.POSIXct("2015-01-01"), to = as.POSIXct("2015-12-31"), by=30))
df$X <- rnorm(nrow(df), 100, 25)

# Create separate vectors for date and time, preserving date/time format
df$date <- as.Date(df$date.time)
df$time <- strftime(df$date.time, format="%H:%M:%S")

# Now use ggplot2's geom_tile() to make the heatmap
p <- ggplot(df, aes(x=time, y=date, fill=X)) + geom_tile()
print(p)
于 2015-08-20T18:47:30.727 に答える