跳转到主内容
跳转到主内容

largestTriangleThreeBuckets

largestTriangleThreeBuckets

自 v23.10 引入

对输入数据应用 Largest-Triangle-Three-Buckets 算法。 该算法用于将时间序列数据降采样以便进行可视化。 其专门用于处理按 x 坐标排序的序列。 其工作方式是将已排序的序列划分为多个 bucket,然后在每个 bucket 中寻找最大的三角形。 bucket 的数量等于结果序列中的点的数量。 该函数会按 x 对数据进行排序,然后对排序后的数据应用降采样算法。

在给定序列中会忽略 NaN,这意味着任何 NaN 值都会被排除在分析之外。 这确保了该函数只对有效的数值数据进行操作。

语法

largestTriangleThreeBuckets(n)(x, y)

别名: lttb

参数

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

参数说明

返回值

返回一个由包含两个元素的元组组成的数组。Array(Tuple(Float64, Float64))

示例

对时间序列数据进行降采样

CREATE TABLE largestTriangleThreeBuckets_test (x Float64, y Float64) ENGINE = Memory;
INSERT INTO largestTriangleThreeBuckets_test VALUES
    (1.0, 10.0), (2.0, 20.0), (3.0, 15.0), (8.0, 60.0), (9.0, 55.0),
    (10.0, 70.0), (4.0, 30.0), (5.0, 40.0), (6.0, 35.0), (7.0, 50.0);

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