R 将时间序列绘制为热图

R 将时间序列绘制为热图,r,ggplot2,time-series,heatmap,R,Ggplot2,Time Series,Heatmap,我有一个带有时间戳和值的数据帧(一个月,值大约每5分钟一次)。 现在我想在x轴上绘制一天,在y轴上绘制一天的时间,并将值作为颜色。最好是我能控制y轴上的装箱(5分钟、10分钟、15分钟..每个箱子的平均值) 我正在使用ggplot2进行实验,但无法得到合理的结果 p_heat <- ggplot(data = data, aes(x = days(timestamp), y = minutes(timestamp)

我有一个带有时间戳和值的数据帧(一个月,值大约每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()
p\u heat也许可以试试这个:

p_heat <- ggplot(data=data, aes(x=timestamp$mday ,y=timestamp$min+timestamp$hour*60)) 
    + stat_density2d(geom="tile", aes(fill = value), contour = FALSE)

p\u heat您要找的是这样的东西吗

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
库(ggplot2)
#为x轴创建日期变量

df$date获取以下错误:函数中的错误(x,y,h,n=25,lims=c(范围(x),范围(y)):如果(nrow(layer_data)==0)返回,带宽必须严格为正:Argument hat Länge 0.在谷歌搜索之后,这似乎是因为我有一个离散的刻度Hi Henrik,谢谢你的帮助,但在y轴上,我需要一整天的时间,以分钟为单位,甚至更好,可以将数据放入5分钟、10分钟……的存储箱中。因此,主要的一点是将一天放在x轴上,并将当天的时间放在x轴上y轴。
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