Пришло время вернуться к бизнес‑кейсу, на который мы примеряли первые шаги: описывали реальность данных и находили частицу.
Напомню, как звучала реальность данных:
В отделениях банка в Москве установлена система электронной очереди. Посетители обращаются в удобное для них отделение банка, чтобы открыть счёт, взять кредит, обменять валюту или получить другую банковскую услугу. Каждому посетителю система выдаёт талон на тип услуг (счета и вклады, кредиты, касса) и потом приглашает его в конкретное окно к оператору. Часть клиентов уходит, не дождавшись своей очереди.
А вот такая структурная схема у нас получилась для этой задачи:
Частицей данных тут будет талон. Давайте упорядочим его свойства от самых важных с точки зрения нашей задачи, до более второстепенных. Так мы получим набор ранжированных по важности «пилюль», из которых будем конструировать графики:
В качестве визуального атома лучше всего подойдёт цветная точка (так как талонов огромное множество), цвет которой отражает самую важную для нас характеристику — время ожидания в очереди по конкретному талону.
Теперь представим всю массу наших талонов, выложенных вдоль оси времени ожидания. Это ещё не визуализацию, но полезный мысленный эксперимент, который «материализует» данные и сделает работу с графиками более «осязаемой»:
Покрасим талоны‑точки по времени ожидания:
Окажется, что за средним временем, с которым мы имели дело в таблице, стоит интересная картина распределения талонов, от обслуженых очень быстро, до прождавших в очереди 20 или 30 мин.
Чтобы чуть лучше проявить это распределение, воспользуемся форматом «ящик с усами», который помимо одного усреднённого значений, покажет ещё и разброс вокруг него. Усы выкинем, оставим только центральный «бокс» между первым и третьим квартилями и медиану.
Вместо одного значения получилось три, которые отражают форму распределения и окрашены по критичности ожидания. Такие штуки можно рисовать для любого набора талонов, например, по услугам:
Видно, что хотя у кредитов среднее больше, чем у счетов и вкладов, но талоны плотнее сгруппировались вокруг него, нет длинного хвоста, уходящего в зону долгого ожидания. Можно считать, что формат для отображения времени ожидания по услугам у нас уже готов: по вертикали услуги, по горизонтали разброс талонов вдоль оси ожидания, выраженный «ящиками без усов».
Следующим шагом давайте сконструируем карту отделений. Очевидно, что каждое отделение — это точка на карте:
А теперь представьте, что всю нашу разноцветную массу талонов мы должны «выплеснуть» на такую карту с точками‑отделениями. Как они поведут себя?
Логично, что чем больше талонов попадёт в отделение, тем сильнее оно раздуется. А чем больше среди этих талонов будет оранжевых и красных, тем краснее будет точка — цвет отдельных талонов «смешивается» и определяет цвет всего отделения.
Последний каркас соберём для временных измерений — дня недели и часа.
Можно распределить заказы по каждой из этих осей в отдельности, а можно привязать их к вертикали и горизонтали. Получится вот такой каркас:
Легко представить, как на нём будут выглядеть наши талоны:
Я тут не меняю размер ячеек только цвет, хотя можно было и с размером поэкспериментировать в той же логике, что на карте.
Каждый из получившихся графиков раскрывает наши данные под своим интересным углом, мы можем найти на карте проблемные отделения и выяснить, в какие часы по будням скапливаются очереди. Но самое интересное случится, когда мы объединим эти форматы на дашборде. Это будет следующий и финальный шаг алгоритма.
P. S. Это был совет о визуализации данных. Хотите узнать всё о таблицах, графиках, диаграммах, картах, схемах и дашбордах? Присылайте вопросы.