Перейти к основному содержанию
Перейти к основному содержанию

largestTriangleThreeBuckets

Применяет алгоритм Largest-Triangle-Three-Buckets к входным данным. Алгоритм используется для даунсэмплинга данных временного ряда при визуализации. Он предназначен для работы с рядами, отсортированными по координате x. Алгоритм работает, разбивая отсортированный ряд на корзины (buckets), а затем находя наибольший треугольник в каждой корзине. Количество корзин равно количеству точек в результирующем ряду. Функция сортирует данные по x, а затем применяет алгоритм даунсэмплинга к отсортированным данным.

Синтаксис

largestTriangleThreeBuckets(n)(x, y)

Псевдоним: lttb.

Аргументы

Значения NaN во входной последовательности игнорируются, то есть любые значения NaN исключаются из анализа. Это гарантирует, что функция работает только с корректными числовыми данными.

Параметры

  • n — количество точек в результирующей последовательности. UInt64.

Возвращаемые значения

Array из Tuple с двумя элементами:

Пример

Входная таблица:

┌─────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)]              │
└───────────────────────────────────────────────────────┘