gpt4 book ai didi

r - 将时间序列绘制为热图

转载 作者:行者123 更新时间:2023-12-02 23:06:34 25 4
gpt4 key购买 nike

我有一个带有时间戳和值的数据框(一个月大约每 5 分钟就有一个值)。现在我想要绘制 x 轴为日期、y 轴为一天中的时间、颜色为值的绘图。最好的情况是我可以控制 y 轴上的分箱(5 分钟、10 分钟、15 分钟……其值为每个分箱的平均值)。

我正在尝试 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

enter image description here

关于r - 将时间序列绘制为热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com