Как стать автором
Обновить

Пользовательский интерфейс масштабирования временных рядов на графиках

Время на прочтение 5 мин
Количество просмотров 2.4K
Задача построения временных рядов на графиках решалась человеком уже в средневековье. Разработчики современных программных систем визуализации данных уделяют ей довольно много внимания. Сегодня для конкретного практического случая обработки временных рядов можно выбрать из десятков подходящих инструментов наиболее подходящий. Тем не менее, остаются случаи, для которых в наиболее популярных продуктах не хватает некоторых возможностей.

Характеристика рассматриваемого класса задач анализа данных


Необходимо исследовать многомерный временной ряд при следующих условиях:

  1. Сложность зарегистрированного процесса и (или) уникальность задач исследования не позволяют свести работу к применению готового алгоритма. Возникает необходимость разделения процесса на этапы и комплексного анализа динамики внутри каждого из них. Критерии разграничения этапов не настолько очевидны, чтобы применить их без визуализации данных.
  2. Параметры имеют различную физическую природу и измеряются в различных единицах. Для каждой кривой временного ряда необходима своя шкала оси ординат.

Особенности работы с точки зрения среды визуализации данных


Разделение временного ряда на этапы может быть как тривиальным, так и довольно сложным. Существуют случаи, когда границы этапов процесса могут быть определены, например, по значению переменной-признака состояния. Такая задача может быть решена и без визуализации, например, применением фильтров данных в MS Excel.

Выявление границ в более сложных случаях связано с визуальным поиском на графиках более или менее объективных признаков перехода системы к новому состоянию. При этом выбор критериев может требовать от специалиста понимания предметной области и выполнения дополнительных расчетов.

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

Не будем даже поверхностно касаться методов, используемых для анализа динамики процесса в границах отдельного этапа. Важно, что для многих задач анализ требует дальнейшего разделения ряда и рассмотрения более мелких временных интервалов внутри основных этапов. Кроме того, интерес могут представлять временные интервалы переходов между этапами.

Таким образом, при решении задач рассматриваемого класса обычно требуется многократное (счет может идти на сотни) изменение временного интервала на графиках. Качество реализации этого действия в пользовательском интерфейсе среды обработки данных заметно сказывается на эффективности работы.

Существующие системы


MS Excel позволяет построить многомерный временной ряд с двумя шкалами по оси ординат («вспомогательная ось»). При этом изменение левой и правой границ на оси абсцисс выполняется внушительным набором действий, включающим ввод чисел с клавиатуры.



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



Такой интерфейс пользователя трудно назвать оптимальным для рассматриваемых задач.
Существенно более эффективное взаимодействие с пользователем строится посредством реализации принципа WYSIWYG в работе с областью построения. Следующая анимация показывает взаимодействие пользователя с таким интерфейсом.



Пример записан в приложении Advanced Grapher, но аналогичную опцию поддерживают многие другие системы, например, библиотека MetricsGraphics.js.

Выигрыш в скорости работы по сравнению с вариантом MS Excel здесь очевиден. Вся задача масштабирования решается в один клик:

  • левая кнопка мыши нажата в точке, соответствующей углу новой прямоугольной области;
  • курсор перемещен в противоположный угол новой области;
  • левая кнопка мыши отпущена.



Но и этот вариант не лишен недостатков. Первый из них заключается в лишней нагрузке, возлагаемой на пользователя. Одним комбинированным действием ему предлагается ввести значения четырех параметров (координаты границ прямоугольной области tmin, tmax, Pmin, Pmax), что требует их предварительной оценки «в уме». При наличии опыта задача имеет приемлемую сложность. Тем не менее, поскольку пользователя интересует в первую очередь временной интервал, tmin и tmax, имеет смысл проработать передачу вертикального масштабирования машине.

Второй недостаток также связан с вертикальным масштабированием. Состоит он в невозможности реализации этого интерфейса для задач рассматриваемого класса. Проблема состоит в том, что единственным кликом в нашем случае пользователь вводит уже не 4, а 6, 8 или более значений, в зависимости от количества шкал оси ординат. Каждая шкала оси ординат на графике получает новые значения верхней и нижней границ, но фактически все эти границы, сколько бы их ни было, определяются двумя числами. Эти числа – ординаты положений курсора мыши в начале и конце клика. Задача пользователя не просто усложняется по сравнению со случаем одномерного ряда. Она еще и перестает быть решаемой: общий интервал, обеспечивающий приемлемый масштаб для каждого ряда, не всегда существует.
Для примера на рисунке представлен один из возможных на практике результатов такого масштабирования.



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

Доработка пользовательского интерфейса


Как было отмечено выше, задачу вертикального масштабирования следует поручить компьютеру. Для этого рассмотрим, как решает ее пользователь на примере одномерного ряда.

Как правило, определившись с временным интервалом, пользователь определяет локальные экстремумы, чтобы наилучшим образом представить область значений. Оптимальное решение для большинства случаев состоит в совмещении области значений и отображаемого интервала шкалы (возможны и алгоритмы с более тонкой логикой, когда отображаемая область имеет небольшой отступ выше и ниже области значений; различия между этими алгоритмами не принципиальны).

Указанная логика имеет довольно простую реализацию. Схема работы интерфейса для одномерного временного ряда представлена на рисунке.



Вертикальная координата клика здесь не играет роли: комбинированное управляющее действие пользователя определяет только левую и правую границы новой отображаемой области.

Масштабирование многомерного ряда с новым пользовательским интерфейсом демонстрируется следующей анимацией.



Исходные данные и новый временной интервал в этом примере соответствуют примеру из начала статьи. Задача решена простейшим действием с максимальным качеством. Снижение потребного времени и интеллектуальных усилий пользователя представляется очевидным.

Ограничение применимости


Возможен и другой подход к вертикальному масштабированию: в некоторых практических задачах обоснована визуализация в предопределенном интервале значений, не зависящем от локальных экстремумов. В этом случае достаточно не изменять настройки вертикальной шкалы, как это реализовано в MS Excel.
Теги:
Хабы:
+1
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн