跳到主要内容
跳到主要内容

largestTriangleThreeBuckets

应用 Largest-Triangle-Three-Buckets 算法于输入数据。该算法用于对时间序列数据进行降采样以便可视化。它被设计为在按 x 坐标排序的序列上操作。它通过将排序后的序列划分为多个桶,然后在每个桶中寻找最大的三角形来工作。桶的数量等于结果序列中的点数。该函数将会按 x 对数据进行排序,然后将降采样算法应用于排序后的数据。

语法

largestTriangleThreeBuckets(n)(x, y)

别名: lttb

参数

在提供的序列中会忽略 NaN,这意味着任何 NaN 值将被排除在分析之外。这确保了该函数仅在有效的数值数据上进行操作。

参数

  • n — 结果序列中的点数。 UInt64

返回值

数组元组,包含两个元素:

示例

输入表:

┌─────x───────┬───────y──────┐
│ 1.000000000 │ 10.000000000 │
│ 2.000000000 │ 20.000000000 │
│ 3.000000000 │ 15.000000000 │
│ 8.000000000 │ 60.000000000 │
│ 9.000000000 │ 55.000000000 │
│ 10.00000000 │ 70.000000000 │
│ 4.000000000 │ 30.000000000 │
│ 5.000000000 │ 40.000000000 │
│ 6.000000000 │ 35.000000000 │
│ 7.000000000 │ 50.000000000 │
└─────────────┴──────────────┘

查询:

SELECT largestTriangleThreeBuckets(4)(x, y) FROM largestTriangleThreeBuckets_test;

结果:

┌────────largestTriangleThreeBuckets(4)(x, y)───────────┐
│           [(1,10),(3,15),(9,55),(10,70)]              │
└───────────────────────────────────────────────────────┘