"Heatbars"用于可视化连续缺失的数据日?

Oeu*_*ano 1 r time-series ggplot2

我试图在每天采样3年,5年和10年的范围内并排显示连续缺失数据的大块.希望使用ggplot2,因为我已经完成了一些美学功能.

我想象这可能来自一个条形图或者可能是一些热图变化,但我不太确定如何将它们与时间序列数据一起使用.

我选择了一个黑/白条列表,因为我认为更容易观察(1)大量缺失数据的位置和(2)它们是否在不同的时刻发生(这对于选择哪些站点来说很重要)使用等),同时(3)相对容易观察到许多条纹,这对于时间序列的更传统的线条图是不正确的.

这是我想到的草稿. 草案示例

以下是5个站的一些示例数据(实际上这可能超过80个):

#Data from 5 different stations sampled daily. 
df <- cbind(seq(as.Date(("2010/01/01")),by="day",length.out=365*5),data.frame(matrix(rnorm(365*5*5),365*5,5)))
colnames(df) <- c("timestamp","st1","st2","st3","st4","st5")
#Add varying ranges of missing consecutive amount of days to observe result on visualization.
df[1:50,"st1"] <- NA # 50 
df[51:200,"st2"] <- NA # 150 
df[1:400,"st3"] <- NA # 400
df[501:1300,"st5"] <- NA # 800
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 6

这是对它的粗略刺激......根据自己的喜好改变尺度和主题元素......

library(ggplot2)
library(scales)
library(reshape2)
melt(df, id.vars = "timestamp") -> k
k$value <- ifelse(is.na(k$value), "NA", "Not NA")

ggplot(data = k) + 
    geom_point(aes(x = timestamp, y = variable, fill = value, colour = value), shape =22) +
    scale_x_date() +
    theme_bw() 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述