Представление численных величин
Небольшой чеклист по визуализации значений численных величин для операторов
В профессиональных системах пользователи имеют дело с большим количеством численных величин, таких как мощность и обороты двигателя, температура воздуха, количество товаров на складе и т.п. К сожалению, хватает примеров, когда отображение такой величины в индикаторах — например, на дашбордах, оставляет желать лучшего.
Ниже просуммированы простые подходы, которые позволяют оптимизировать представление численных величин для пользователя. Но для начала немного обобщений.
Свойства и критерии
Чтобы значение величины было полезным, удобным и понятным, мы должны опираться на следующие основные свойства:
- Формат — то, в каком типе величина будет представлена (например, в метрах или в километрах для расстояний, в угловых минутах или дробях градуса для координат). Либо, может, вообще мы откажемся от цифрового представления и заменим его на качественное описание или на визуальное.
- Точность — необходимая степень детализации величины, которая не будет ни избыточной, ни недостаточной для задач пользователя.
- Визуальное представление — как величина непосредственно отображается в интерфейсе, микро-дизайн.
Все эти факторы влияют на удобочитаемость и скорость прочтения величины. Рассмотрим их подробнее.
Формат
Одни и те же величины могут быть преобразованы в различные форматы представлений и единицы измерений. Их выбор зависит от задач, предметной области, требований регуляторов и предпочтений пользователя.
Простейший пример — расстояние. В европейских странах используется метрическая система, во многих бывших британских колониях используется имперская система. Но и в пределах одной системы мер одному пользователю будут привычнее километры в час, а другому метры в секунду. И это необходимо учитывать.
Но это не только про простые единицы измерения. Мы можем представить координаты объекта на земле в виде пары отрицательных или положительных чисел, соответствующих градусам широты и долготы, но также преобразовать каждый из них в градусы, минуты и секунды и дополнительный символ полушария, а на деле часто используют только градусы и минуты с дробной частью, плюс символ полушария.
Точность
Исходная величина, которая хранится в системе, может быть в принципе любой точности (иначе говоря, количества знаков после запятой), особенно если она не была введена человеком, а получена с датчика или получена в результате каких-либо вычислений, особенно при делении. Система не знает какая точность необходима — знает это лишь тот кто её проектирует.
В общем случае, чем точнее величина, тем потенциально больше лишней, избыточной информации мы передаем пользователю. С другой стороны, менее точная, округленная величина может потерять важные детали для оператора.
Динамическая точность
Если величина меняется в широком диапазоне — например, это расстояние до пункта назначения, которое может быть и 50 метров, и 2 382 километра, то мы должны менять точность динамически.
Как в упомянутом примере, мы можем дистанцию показывать в метрах, а когда она становится больше километра — показывать в километрах с точностью до одного знака после запятой. А если дистанция больше 100 километров — то можно и округлять до целого числа, или даже до десятков километров (но см. ниже — это может раздражать). Возможны и промежуточные вариации, причем с округлением не только до десятков, сотен и так далее, но и до пяти, двадцати пяти и проч — особенно часто это встречается в шкалах.
То же верно для интервалов продолжительности и других величин.
Неявные факторы
Порой чуть более избыточная точность несёт дополнительную информацию — допустим, пользователю в целом достаточно знать свою скорость с точностью до километра в час или курс с точностью до градуса, но добавление числа после запятой помогает понять, когда он пытается удерживать эту скорость, динамику её изменения и диапазон колебаний в границах этого самого километра. Если же убрать эту точность, оператору придется реагировать когда значение выходит уже за границы, а не делать предупредительные воздействия до того, как границы пересечены. С другой стороны, если значения начинают мельтешить перед глазами так быстро, что за ними не уследишь — толку от них никакого.
Иногда низкая точность сама по себе может вызывать психологический дискомфорт, хотя и не несет функциональной ценности. Хорошим примером из массовых продуктах является Яндекс.Навигатор (на момент лета 2020 года, когда я в последний раз отслеживал) — при дальних поездках на участках трассы он округляет дистанцию до следующего поворота до десятков километров, и это может вызывать раздражение, ибо нет ощущения движения, «съедания километров», так как величина «застывает» на пять минут, становится, по сути, статичной, даже если скорость 120 км/ч. Также не понятно, 150 километров до поворота — это от 159 до 150 или от 155 до 145.
Визуальное представление
Ну и, наконец, самый дизайнерский аспект — визуальная оптимизация представления величины. То есть даже определившись с форматом и точностью, у нас есть способы улучшить или испортить представление чисто дизайнерскими методами.
Акцент наименования величины. Если пользователь смотрит на экран постоянно, метка, описывающая величину (например, «Скорость») должна быть сделана менее акцентной, чем сама величина, а в некоторых случаях она может быть и вовсе убрана.
Акцент единицы измерения. Если единицы измерения не меняются в динамике, то единица измерения тоже может быть показана с меньшим акцентом, перенесена в какую-нибудь легенду, либо убрана вовсе.
Акцент значений после десятичного знака. Если в некоторых случаях пользователю может понадобиться точная информация, но в большинстве ситуаций не нужна (например, в финансовом приложении нам копейки не очень важны), то значения после десятичной запятой или точки можно сделать менее заметными цветом, размером или другими средствами.
Разделение чисел на группы. Довольно простой, но важный момент — если число длинное, состоит из множества знаков, то стоит эту величину разделить пробелами или другими знаками (в зависимости от локализации). Нет ничего хуже, чем писать номер телефона или карточки без пробелов, но то же верно и для длинных дистанций — написать 10 000 км лучше, чем 10000 км.
Не забываем, что в разных странах используются разные подходы:
Прочие возможности
Иногда недостаточно отображения величины как таковой, и необходимо предусмотреть дополнительные возможности для облегчения интерпретации величины.
Это может быть отображение стрелки тренда, показывающей растёт величина, падает, стабильна она или меняется хаотично. Либо вместо тренда можно показать небольшой искрографик, который более точно отражает её недавнюю динамику.
Иногда необходимо подсветить, если величина подозрительно давно не обновлялась, либо если есть слишком сильное её несоответствие другим величинам (допустим, значения с нескольких датчиков не соответствуют друг другу, либо значение с датчика слишком сильно отличается от прогнозного). Тогда, например, можно обозначить её желтым цветом, добавить рядом иконку предупреждения или вообще запустить тревогу.
В других случаях, если величина меняется редко (такая как давление или температура воздуха, уровень жидкости в танке и т.п.), можно наоборот, подсветить ненадолго обновленную величину, чтобы пользователь обратил на это внимание.
В некоторых случаях вообще лучше отказаться от отображения величины в виде числа и использовать другой способ. Например, пользователю может быть не так важно, какая скорость какого-либо процесса в данный момент, но ему важно знать, находится он в разрешенном диапазоне или нет, и тогда мы заменяем число на индикацию «Скорость в норме», либо «Снижение скорости» или «Превышение скорости».
Другой пример — вместо отображения скорости и направления ветра в виде числа или текста («Северо-западный 12 м/с», «ЮЗ 10 уз.»), можно отобразить картушку компаса и показать ветер с помощью специального вектора-символа, объединяющего и скорость и направление.
Частные случаи
И, наконец, еще пара частных моментов.
Если величина может иметь как положительные, так и отрицательные значения (например, уличная температура), стоит отображать её всегда со знаком, чтобы не тратить лишние когнитивные усилия на вывод «знака нет — значит положительное». Но стоит иметь в виду, что в некоторых отраслях могут быть другие традиции — например, в финансах это обозначают цветом, а в бухгалтерии отрицательные значения могут записывать в скобках.
В общем случае стоит убирать лишние знаки после запятой (нули) или не добавлять ведущие нули (типа 01 сентября), так как они добавляют лишний неинформативный шум. Но в некоторых ситуациях это необходимо — например, при сравнении данных в колонке. Также, например, при записи координат добавление дополнительного нуля для долготы дополнительно помогает указать, что это не широта (то есть она всегда двузначная, а долгота всегда трехзначная), а для обозначения курса стоит добавлять нули, потому что по всем правилам коммуникаций для однозначности приказов, курсы обозначаются и озвучиваются как последовательность из трех чисел («курс ноль один ноль», а не «десять»), и такая визуализация, опять же, поддерживает привычный подход.
Итоговый чеклист
Подытожим сказанное в виде чеклиста:
- Узнайте, как принято записывать величины в предметной области проекта и в традициях страны/национальности пользователей.
- Если общепринятый формат кажется неоптимальной (такое бывает), убедитесь, что можно отойти от него, а нет какой-то неизвестной причины, почему он используется.
- Подберите необходимую точность представления величины и условия её изменения (если точность меняется динамически).
- Отработайте дизайн представления так, чтобы значение обладало минимальным шумом, но покрывало задачи пользователя.