Protraktor

Представление численных величин

Небольшой чеклист по визуализации значений численных величин для операторов

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

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

Свойства и критерии

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

Все эти факторы влияют на удобочитаемость и скорость прочтения величины. Рассмотрим их подробнее.

Формат

Одни и те же величины могут быть преобразованы в различные форматы представлений и единицы измерений. Их выбор зависит от задач, предметной области, требований регуляторов и предпочтений пользователя.

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

Одно и то же значение в разных форматах

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

Слева — исходные координаты с GNSS-сенсора, посередине — традиционный формат, справа — формат представления в официальных навигационных системах.

Точность

Исходная величина, которая хранится в системе, может быть в принципе любой точности (иначе говоря, количества знаков после запятой), особенно если она не была введена человеком, а получена с датчика или получена в результате каких-либо вычислений, особенно при делении. Система не знает какая точность необходима — знает это лишь тот кто её проектирует.

Одно и то же значение продолжительности с разной точностью

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

Динамическая точность

Если величина меняется в широком диапазоне — например, это расстояние до пункта назначения, которое может быть и 50 метров, и 2 382 километра, то мы должны менять точность динамически.

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

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

То же верно для интервалов продолжительности и других величин.

Неявные факторы

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

Изменения отображения значений разной точности во времени

Иногда низкая точность сама по себе может вызывать психологический дискомфорт, хотя и не несет функциональной ценности. Хорошим примером из массовых продуктах является Яндекс.Навигатор (на момент лета 2020 года, когда я в последний раз отслеживал) — при дальних поездках на участках трассы он округляет дистанцию до следующего поворота до десятков километров, и это может вызывать раздражение, ибо нет ощущения движения, «съедания километров», так как величина «застывает» на пять минут, становится, по сути, статичной, даже если скорость 120 км/ч. Также не понятно, 150 километров до поворота — это от 159 до 150 или от 155 до 145.

Визуальное представление

Ну и, наконец, самый дизайнерский аспект — визуальная оптимизация представления величины. То есть даже определившись с форматом и точностью, у нас есть способы улучшить или испортить представление чисто дизайнерскими методами.

Акцент наименования величины. Если пользователь смотрит на экран постоянно, метка, описывающая величину (например, «Скорость») должна быть сделана менее акцентной, чем сама величина, а в некоторых случаях она может быть и вовсе убрана.

Акцент единицы измерения. Если единицы измерения не меняются в динамике, то единица измерения тоже может быть показана с меньшим акцентом, перенесена в какую-нибудь легенду, либо убрана вовсе.

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

Оставляем точность, но приглушаем чрезмерные для большинства случаев детали

Разделение чисел на группы. Довольно простой, но важный момент — если число длинное, состоит из множества знаков, то стоит эту величину разделить пробелами или другими знаками (в зависимости от локализации). Нет ничего хуже, чем писать номер телефона или карточки без пробелов, но то же верно и для длинных дистанций — написать 10 000 км лучше, чем 10000 км.

Не забываем, что в разных странах используются разные подходы:

Европейский (и российский) и американский форматы записи чисел с большим количеством знаков

Прочие возможности

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

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

Дополнительные обозначения. Справа — барическая тенденция (тренд)

Иногда необходимо подсветить, если величина подозрительно давно не обновлялась, либо если есть слишком сильное её несоответствие другим величинам (допустим, значения с нескольких датчиков не соответствуют друг другу, либо значение с датчика слишком сильно отличается от прогнозного). Тогда, например, можно обозначить её желтым цветом, добавить рядом иконку предупреждения или вообще запустить тревогу.

Посередине — значение которое не обновлялось уже несколько секунд, справа — которое не обновлялось, например, больше нескольких минут.

В других случаях, если величина меняется редко (такая как давление или температура воздуха, уровень жидкости в танке и т.п.), можно наоборот, подсветить ненадолго обновленную величину, чтобы пользователь обратил на это внимание.

Картинка анимирована, задержите взгляд

В некоторых случаях вообще лучше отказаться от отображения величины в виде числа и использовать другой способ. Например, пользователю может быть не так важно, какая скорость какого-либо процесса в данный момент, но ему важно знать, находится он в разрешенном диапазоне или нет, и тогда мы заменяем число на индикацию «Скорость в норме», либо «Снижение скорости» или «Превышение скорости».

Другой пример — вместо отображения скорости и направления ветра в виде числа или текста («Северо-западный 12 м/с», «ЮЗ 10 уз.»), можно отобразить картушку компаса и показать ветер с помощью специального вектора-символа, объединяющего и скорость и направление.

Частные случаи

И, наконец, еще пара частных моментов.

Если величина может иметь как положительные, так и отрицательные значения (например, уличная температура), стоит отображать её всегда со знаком, чтобы не тратить лишние когнитивные усилия на вывод «знака нет — значит положительное». Но стоит иметь в виду, что в некоторых отраслях могут быть другие традиции — например, в финансах это обозначают цветом, а в бухгалтерии отрицательные значения могут записывать в скобках.

В общем случае стоит убирать лишние знаки после запятой (нули) или не добавлять ведущие нули (типа 01 сентября), так как они добавляют лишний неинформативный шум. Но в некоторых ситуациях это необходимо — например, при сравнении данных в колонке. Также, например, при записи координат добавление дополнительного нуля для долготы дополнительно помогает указать, что это не широта (то есть она всегда двузначная, а долгота всегда трехзначная), а для обозначения курса стоит добавлять нули, потому что по всем правилам коммуникаций для однозначности приказов, курсы обозначаются и озвучиваются как последовательность из трех чисел («курс ноль один ноль», а не «десять»), и такая визуализация, опять же, поддерживает привычный подход.

Трехзначный формат на профессиональном репитере гирокомпаса. Впрочем, не все следуют этому подходу.

Итоговый чеклист

Подытожим сказанное в виде чеклиста:

  1. Узнайте, как принято записывать величины в предметной области проекта и в традициях страны/национальности пользователей.
  2. Если общепринятый формат кажется неоптимальной (такое бывает), убедитесь, что можно отойти от него, а нет какой-то неизвестной причины, почему он используется.
  3. Подберите необходимую точность представления величины и условия её изменения (если точность меняется динамически).
  4. Отработайте дизайн представления так, чтобы значение обладало минимальным шумом, но покрывало задачи пользователя.