繁体   English   中英

绘制具有 r 间隙的时间序列数据?

[英]Plotting time-series data with a gap in r?

我有一个数据集缺少从 7 月 7 日到 7 月 19 日左右的数据。 我的数据集的图表 您可以很容易地看到数据差距。 我想截断它,以便不存在差距,并且之前和之后的数据相互对接。 这样的东西。 我确实尝试按照链接的示例进行操作,但我不明白他们是如何设置 xseq 的。 我还尝试只删除有问题的日期并创建一个没有它们的 dataframe 但这并没有解决问题。

我不确定它是否有帮助,但这是该图的现有代码:

    together <- ggplot() +
  stat_summary(data = grid_pad, aes(x = DTT, y = grid_value, fill = 'Ambient'), geom='ribbon', fun.data = mean_cl_quantile, alpha = 0.25) +
  stat_summary(data = grid_pad, aes(x = DTT, y = grid_value, color = 'Ambient'), geom='line', fun = mean, size = 0.9) +
  stat_summary(data = turtle_pad, aes(x = DTT, y = turtle_value, fill = 'Turtle'), geom='ribbon', fun.data = mean_cl_quantile, alpha = 0.25) +
  stat_summary(data = turtle_pad, aes(x = DTT, y = turtle_value, color = 'Turtle'), geom='line', fun = mean, size = 0.9) +
  labs(x = "Date", y = "Temperature")+
  scale_color_manual("Legend", values = c('Ambient' = '#1b9e77', 'Turtle' = '#d95f02'), labels = c(Ambient = 'Ambient Temp', Turtle = 'Turtle Temp')) +
  scale_fill_manual("Legend", values = c('Ambient' = '#1b9e77', 'Turtle' = '#d95f02'), labels = c(Ambient = 'Ambient Temp', Turtle = 'Turtle Temp')) +
  theme_classic() + 
  ggtitle("Ambient and Turtle Temperatures")+
  ggeasy::easy_center_title()+
  easy_remove_legend_title()
together

这是我的数据结构:

> str(grid_pad)
grouped_df [142,800 x 3] (S3: grouped_df/tbl_df/tbl/data.frame)
         $ Logger    : Factor w/ 50 levels "TL1","TL11","TL12",..: 1 1 1 1 1 1 1 1 1 1 ...
         $ DTT       : POSIXct[1:142800], format: "2021-05-28 00:00:00" "2021-05-28 01:00:00" "2021-05-28 02:00:00" "2021-05-28 03:00:00" ...
         $ grid_value: num [1:142800] NA NA NA NA NA 19.5 19.5 19.5 20 22 ...
         - attr(*, "groups")= tibble [50 x 2] (S3: tbl_df/tbl/data.frame)
          ..$ Logger: Factor w/ 50 levels "TL1","TL11","TL12",..: 1 2 3 4 5 6 7 8 9 10 ...

> str(turtle_pad)
grouped_df [57,120 x 3] (S3: grouped_df/tbl_df/tbl/data.frame)
     $ Name        : Factor w/ 20 levels "F1","F11","F12",..: 1 1 1 1 1 1 1 1 1 1 ...
     $ DTT         : POSIXct[1:57120], format: "2021-05-28 00:00:00" "2021-05-28 01:00:00" "2021-05-28 02:00:00" "2021-05-28 03:00:00" ...
     $ turtle_value: num [1:57120] NA NA NA NA NA NA NA NA NA NA ...
     - attr(*, "groups")= tibble [20 x 2] (S3: tbl_df/tbl/data.frame)
      ..$ Name : Factor w/ 20 levels "F1","F11","F12",..: 1 2 3 4 5 6 7 8 9 10 ...
  

以 R 为基数,详细:

df_with_gap <- data.frame(Name = gl(41, 1),
           DTT = as.Date(Sys.Date()) + (-20:20),
           turtle_value = c(runif(20), rep(NA, 5), runif(16))
           )

rows_to_keep  <- !is.na(df_with_gap$turtle_value)

## remove NAs
df_without_gap <- df_with_gap[rows_to_keep,]

## create some index to use for x-values ggplot
df_without_gap$pseudo_date  <- rownames(df)

请注意:

  • 虽然您可以将剩余值的 DTT 用于 label 您的轴(请参阅 label 中的参数?scale_x_continuous`,plot 会产生误导,因为它掩盖了缺失的信息)
  • 如果您想显示环境温度和海龟温度之间的关联,散点图 plot 将是通往 go 的方式。
  • 为了显示季节性,请考虑添加平滑器(ggplot 的?geom_smooth geom_smooth)
  • 为了传达可变性,箱线图可能更有指导意义
  • web 上有用的图表选择器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM