Вопрос-ответ: качество работы маршруток
Спрашивает Евгений Макаров из Baseride Technologies:
Мы собираем данные о работе маршрутных такси в Нижнем Новгороде для центральной диспетчерской, которая контролирует качество перевозок. На каждой машине установлен GPS-передатчик, который передаёт данные в «Клаудбас». На основании данных формируются ежедневные и ежемесячные отчёты о выполненной работе и нарушениях.
Нужно визуализировать два ключевых параметра: отклонение от расписания движения по остановкам маршрута и превышение скорости. Правда, в условиях пробок точное время отправления практически никогда не выдерживается, и маршрутчикам сказано контролировать интервал и число автобусов на маршруте.
Как наглядно отобразить эту информацию?
Часто подобные задачи решают так: данные складывают в таблицы, а ключевые параметры (среднее отклонение, количество нарушений) рассчитывают и выводят на дашборд. На виду оказываются оторванные от реальных данных, «средние по больнице» показатели, а на поиски проблем и их возможных причин пользователи системы отправляются в громоздкие, неприспособленные для этого таблицы.
Попробуем решить задачу иначе: от частного (одного рейса) к общему (ежедневным и ежемесячным отчётам). Как наглядно показать отклонения и превышения маршрутки за один рейс? Расположим остановки по горизонтали, сохранив пропорциональность растояний между ними. Отклонения от расписания при посещении конкретной остановки покажем кругом, площадь которого пропорциональна опозданию/опережению в минутах. Участки превышения скорости закрасим красным цветом: чем больше превышение, тем краснее участок.
Рейсы без нарушений или с небольшими нарушениями выглядят нейтрально:
Конкретные опоздания и превышения показаны при наведении:
Чтобы картина была нагляднее, оживим её временным слайдером.
Чем «краснее» рейс, тем больше нарушений и тем они серьёзнее:
Масштаб кружков выбран таким образом, чтобы их радиус не превышал оптимальный для чтения диаграммы максимум.
Во-первых, такие рейсы легко сравнивать между собой. Например, можно одним взглядом окинуть все утренние рейсы, расположив их друг под другом (слева — время старта):
Живой прототип: http://minibus.datalaboratory.ru/onebyone/
Во-вторых, рейсы можно складывать между собой. Та же картина дня может быть свёрнута в одну линию с суммарным опозданиям по остановкам и суммарными (полупрозрачными) нарушениями на участках:
Последние четыре остановки сильнее других страдают от нарушений расписания, а скорость превышают чаще всего в начале и на длинном перегоне в конце маршрута. Благодаря интерактивности видно, как маршрутки, стартовавшие в разное время дня, распределяются по маршруту: кто и где отстаёт и, наоборот, опережает общую массу.
Дополним картину средними показателями, над каждой остановкой подпишем средний интервал ожидания:
Живой прототип: https://minibus.datalaboratory.ru/all/
Плюс такого подхода в том, что можно наглядно показать любой срез по рейсам: за определённую дату или время дня, для конкретного водителя, по определённым нарушениям, — а также сравнивать эти срезы между собой. Так можно показать все городские маршруты со статистикой за любой временной период на одном экране. При этом будет видна общая картина и каждый конкретный рейс в удобной для дальнейшего исследования форме.
Мы в Лаборатории данных создаём наглядные системы мониторинга для траспортных компаний и городских служб. Пишите: data@datalaboratory.ru
Присылайте вопросы о визуализации данных на почту: data@datalaboratory.ru, ответы публикуются по понедельникам. При участии Кирилла Беляева и Сергея Долинина.
Татьяна, большое спасибо за ответ
Интересный способ визуализации данных
Вопрос — при просмотре маршрута в реальных условиях нужно будет учитывать минимум два направления по вариантам маршрута (туда и обратно)
Как видится решение этой проблемы — две линии с ползунками, овал, по которому перемещаются автобусы или как-то по-другому?
Предлагаю вытянуть оба направления маршрута в одну горизонталь. Остановки в прямом и обратном направлении хоть и находятся рядом физически, с точки зрения транспортной ситуации — несвязанные сущности. Если замкнуть маршрут в кольцо, сравнение участков и остановок по вертикали будет затруднено.
В случае свёрнутой в одну линию диаграммы можно сделать кольцо для экономии места.