我试图在每天抽样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
答案 0 :(得分: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()