【问题标题】:How can I get a moving average for each day of the week?如何获得一周中每一天的移动平均线?
【发布时间】:2013-12-16 15:49:10
【问题描述】:

我以一小时的粒度将数据输入到石墨中。例如

2013-12-06-12:00    15
2013-12-08-09:00    14
2013-12-09-12:00     3
2013-12-13-00:00    10
2013-12-14-08:00    20
2013-12-14-09:00     1
2013-12-15-00:00     5
2013-12-16-00:00    11
2013-12-16-02:00    12

...等等

现在,我希望能够将其绘制成“一周中每一天的值的演变”,因此显示的实际值是一周中特定日期的值的总和(或平均值)数周(例如 2 周)。

如果我只看上周,我的图表会是这样的:

  ^       21
20|       |
  |       |
  |   12.5|       13
10|   |   |   9.5 |
  |   |   |   |   |
  |   |   |   |   |
 0+--------------------------------->
   Mon Tue Wed Thu Fri Sat Sun
    12  13  14  15  16

因此,例如,对于“星期五”点,它取今天 (11+12) 的值和上周五 (3) 的值,然后取两者的平均值 ((11+12)+3)/ 2

这可能吗,如何?

【问题讨论】:

标签: graphite


【解决方案1】:

summarize(your.metric.goes.here, "1week", "sum") 将以 1 周的间隔通过汇总数据来汇总数据。您可以在also 使用 avg, max, min 。

就语义而言,计时器通常需要进行平均,并且计数器在汇总时需要求和。

示例:如果您在每天跑步时测量 lap-countslap-times,并且想要每周总结,您平均 7 天的 lap-time 和每周分配给lap-time。使用lap-count,知道总数更有意义,所以你求和它。

换一种说法:timeStacktimeShift 用于在您想比较上个月的数据和本月在同一时间线上的数据的情况。此外,您也可以timeShift汇总数据。

【讨论】:

    【解决方案2】:

    我认为您正在寻找的具体是timeStackaverageSeries 的组合。例如:

    averageSeries(timeStack(your.metric.here,"1week", 0, 2))
    

    最后两个参数是您想要合并的“1 周”系列的范围(因此它会获得本周和前 2 周的系列)。

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2015-08-14
      • 2017-10-27
      相关资源
      最近更新 更多