我有一个带有时间戳和值的数据框(一个月,大约每5分钟有一个值)。现在,我想在x轴上绘制一天,在y轴上绘制一天中的时间,并将颜色作为颜色。最好的办法是,我可以控制y轴上的装箱(5min,10min,15min ..,每个装箱的平均值)。
我正在尝试ggplot2,但无法获得合理的结果。
p_heat <- ggplot(data = data,
aes(x = days(timestamp),
y = minutes(timestamp) + hours(timestamp) * 60, fill = value)) +
geom_tile()
测试数据可以生成如下:
data <- data.frame(timestamp = seq(from = as.POSIXct("2013-09-01 00:00:00"),
to = as.POSIXct("2013-10-01 00:00:00"), by = "5 mins"),
value = runif(8641, 0, 1))
这是迄今为止我能得到的最好的结果:)我也尝试过使用scale_x / y_date()
我很高兴看到一些提示,将我推向正确的方向。谢谢!
您正在寻找这样的东西吗?
library(ggplot2)
# create date variable for the x-axis
df$date <- as.Date(df$timestamp, format = "%Y-%m-%d")
# get H:M components
df$hm <- format(df$timestamp, "%H:%M")
# create y-axis breaks and labels
lab <- with(df, paste(format(df$timestamp, "%H"), "00", sep = ":"))
gg <- ggplot(data = df, aes(x = date, y = hm, fill = value)) +
geom_tile() +
scale_y_discrete(breaks = lab)
gg
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句