簡體   English   中英

帶有 stat_summary 的 ggplot 表示以天為單位的平均時間

[英]ggplot with stat_summary for mean along time represented by days

我有這個數據表示變量 Q1 隨時間變化的值。 時間不是用日期表示的,而是用自一個事件以來的天數表示。

https://www.mediafire.com/file/yfzbx67yivvvkgv/dat.xlsx/file

我正在嘗試 plot Q1along 時間的平均值,就像在這里

使用 ggplot 在時間序列中繪制多個變量的平均值

我正在使用此代碼

 library(Hmisc)
    ggplot(dat,aes(x=days,y=Q1,colour=type,group=type)) +
      stat_summary(fun.data = "mean_cl_boot", geom = "smooth")

除了似乎不適用於新ggplot2版本的代碼之外,您還有一個問題,即您的數據並不真正適合那種 plot。 此代碼實現了您想要做的事情:

dat <- rio::import("dat.xlsx")

library(ggplot2)
library(dplyr)dat %>% 
  ggplot(aes(x = days, y = Q1, colour = type, group = type)) +
  geom_smooth(stat = 'summary', fun.data = mean_cl_boot)

但是 plot 並沒有真正告訴您任何事情,僅僅是因為您的數據中沒有足夠的值。 大多數情況下,每天似乎只有一個值,谷值快速上下跳躍,有時天之間的差距很大。

當您將值分組到時間跨度時,您可以看到這一點。 這里我使用round(days, -2)將四舍五入到最接近的 100(例如,756 變成 800,301 變成 300,49 變成 0):

dat %>% 
  mutate(days = round(days, -2)) %>% 
  ggplot(aes(x = days, y = Q1, colour = type, group = type)) +
  geom_smooth(stat = 'summary', fun.data = mean_cl_boot)

這應該與鏈接的 plot 相同,但置信區間很大。 這並不奇怪,因為如前所述,值在 1-5 之間快速交替。 我希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM