Линейная шкала с ленточной шкалой, как зажим в экстентах - PullRequest
0 голосов
/ 22 октября 2019

Используя некоторую сложную смесь линейных и ленточных шкал, я веду себя следующим образом:

Timeline with gathering at extents https://vega.github.io/editor/#/gist/378076f154c10c6d171608c1e82b2e3c/timeline.json

(Возьмитевременная шкала и прокрутка влево или вправо)

Проще просто попробовать, чем объяснить, но здесь ... Я хочу иметь возможность отображать временные метки на линейной полосе в течение ограниченного времени, новместо сокращения временных меток, которые меньше или больше, чем протяженность окна, я хочу, чтобы эти временные метки собирались в экстентах.

Это означает, что, поскольку временные метки собираются в любой степени, мы должны уменьшить окно, чтобыподойдет тем, кто снаружи. Примерно такой алгоритм:

  1. Найти заданный LT меньше минимального экстента
  2. Найти заданный GT больше максимального экстента
  3. Вычислить новое сжатое окно, чтобы учесть временные метки налевый (минимальный) или правый (максимальный) экстенты
  4. Найти набор N между минимальным и максимальным

  5. Построить шкалу диапазона для набора LT

  6. Построение шкалы диапазонов для набора GT
  7. Построение линейной шкалы для набора N

  8. Кодирование меток каждого набора L, G, M с использованием их соответствующей шкалы

Есть ли что-то более простое в Vega / D3, которое поддерживает это? Как вы можете видеть, я заставил это работать (с несколькими артефактами), но было бы неплохо более простое решение. Возможно, более простое преобразование данных. Я уже делаю 3 преобразования фильтра для шагов 1,2 и 4 выше.

...