簡體   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