
Описание проекта
Этот проект начался с моего интереса к Индии — стране, где кажется, что движение никогда не останавливается. Машины сигналят без причины, мотоциклы едут сразу по трём полосам, рикша может внезапно появиться из ниоткуда, а пешеходы переходят дорогу так, будто у них есть бессмертие по умолчанию. На фоне такого трафика логично ожидать, что такси — вещь жизненно необходимая. Но тут возникает парадокс: пользоваться такси в Индии может далеко не каждый, и для многих это скорее небольшая роскошь, чем повседневный транспорт.
Именно это противоречие меня и зацепило. С одной стороны — хаотичные мегаполисы и перегруженные дороги, с другой — сервис, которым пользуется лишь часть населения. Моя цель была простой: посмотреть, как эта реальность выглядит в цифрах: сколько поездок действительно заканчиваются успешно, в какие часы люди чаще вызывают такси и насколько «больно» бьёт поездка по кошельку.
Для анализа я использовала датасет с поездками популярных сервисов такси в Индии за июль 2024 года. (https://www.kaggle.com/datasets/hetmengar/ola-and-uber-ride-booking-and-cancellation-data)
Чтобы не утонуть в цифрах, я выбрала несколько наглядных типов визуализаций: 1. Кольцевая диаграмма 2. Гистограмма распределения 3. Линейный график 4. Горизонтальная столбчатая диаграмма
Использованные статистические методы
Частотный анализ категориальных данных — применялся при подсчёте количества поездок по статусам бронирования и визуализировался с помощью круговой (donut) диаграммы «Распределение статусов поездок». Метод позволил оценить доли успешных и проблемных заказов.
Анализ распределения и меры центральной тенденции (медиана) — использовался при исследовании стоимости успешных поездок. Гистограмма в сочетании с вертикальной линией медианы в графике «Распределение стоимости поездок» позволила оценить типичную цену и асимметрию распределения.
Временной (почасовой) анализ спроса — реализован через агрегацию количества заказов по часам суток и визуализирован линейным графиком «Время суток и количество заказов». Метод позволил выявить суточные паттерны и часы пикового спроса.
Поиск экстремальных значений во временных рядах — применялся для определения часа максимального числа заказов, который был дополнительно выделен маркером на линейном графике, что усилило интерпретацию пиковых нагрузок.
Ранжирование и отбор топ-N категорий — использовался для выявления наиболее популярных районов посадки пассажиров. Горизонтальная столбчатая диаграмма «Районы с наибольшим числом поездок» отражает сравнительный анализ локаций по частоте поездок.
Сравнительный визуальный анализ категорий — реализован через горизонтальные столбцы с выделением лидирующей категории цветом, что позволило наглядно подчеркнуть район с максимальным числом заказов.
Цветовая палитра
В цветовой палитре мне хотелось передать ощущение плотного городского ритма и визуальной насыщенности, характерных для индийских мегаполисов.
Палитра была собрана в Adobe Color. При выборе цветов я ориентировалась на ассоциации с городской средой: холодный сине-фиолетовый оттенок создаёт ощущение свободы и визуально «собирает» композицию, служа опорным цветом всей системы. Контрастные тёплые и пастельные оттенки добавлены для создания ритма и разнообразия, отражая многослойность и неоднородность городской среды.
Цвета проекта:
#F5F5F5 #2F2F2F #E2F4A6 #EEA0FF #5A4EFF #FB4645
Для типографики был выбран шрифт Exo2.
1. Распределение статусов поездок
Диаграмма показывает, как распределяются все заказы по итоговому статусу. Большая часть круга приходится на успешно завершённые поездки — это основной сегмент данных, который визуально сразу выделяется. Остальная часть диаграммы разбита на несколько более мелких секторов, отражающих разные проблемные сценарии: отмены со стороны водителя, отмены со стороны клиента и случаи, когда водитель не был найден.
2. Распределение стоимости поездок
Гистограмма отражает распределение стоимости поездок. По горизонтальной оси указана цена поездки в индийских рупиях, по вертикальной — количество заказов. Основная масса поездок сосредоточена в левой части графика, что говорит о преобладании относительно недорогих поездок. По мере роста стоимости количество таких заказов заметно снижается, формируя длинный «хвост» дорогих поездок.
На графике также отмечена медианная стоимость — она составляет 385 рупий. Для перевода в рубли можно использовать приближённый курс: 1 индийская рупия ≈ 1,1 рубля Соответственно: медианная стоимость поездки ≈ 420–430 рублей большинство поездок укладывается в диапазон примерно 200–600 рублей
3. Время суток и количество заказов
Линейный график показывает зависимость количества заказов от времени суток. По оси X отложены часы — от 0 до 23, по оси Y — число заказов. Линия демонстрирует, как спрос меняется в течение дня.
Наиболее выраженный пик приходится на дневные часы, около 12:00, что отмечено отдельно. Это может быть связано с активной дневной мобильностью: поездками по делам, на работу или обратно. В ночные и ранние утренние часы количество заказов заметно ниже, но не падает до минимума, что говорит о постоянной, пусть и менее интенсивной, активности сервиса.
4. Районы с наибольшим числом поездок
Горизонтальная столбчатая диаграмма отображает районы города с наибольшим количеством поездок. По вертикальной оси перечислены районы, по горизонтальной — количество заказов. Такой формат удобен для сравнения значений между локациями.
Лидирующие районы выделяются сразу за счёт длины столбцов. Разница между ними не является резкой, что указывает на достаточно равномерное распределение спроса по наиболее активным частям города. При этом верхние позиции занимают районы с плотной застройкой и высокой транспортной нагрузкой, что логично для сервиса такси в условиях перегруженного городского трафика.
Визуализация проблемы
В рамках проекта я создала серию иллюстраций с помощью нейросети recraft.ai, вдохновлённых городской средой и визуальной культурой Индии. Центральным элементом изображений стало такси как символ современного сервиса, существующего внутри хаотичного и перегруженного городского трафика. Одна из сгенерированных иллюстраций была выбрана в качестве обложки проекта.
Промт для генерации иллюстраций: Indian city traffic with yellow taxi cars, crowded streets, cars, motorcycles and rickshaws, vibrant Indian colors, chaotic urban movement, cinematic lighting, cultural atmosphere of India, digital illustration, high detail
Общий вывод
Работая над этим проектом, я для себя поняла, насколько важно рассматривать данные в контексте страны и культуры. Одни и те же цифры могут означать совершенно разные вещи в зависимости от среды, в которой они существуют.
По ходу завершения работы стало ясно, что сервис такси в индийском городе функционирует стабильно, но при этом постоянно находится под давлением городской среды. Большая доля успешно завершённых поездок говорит о том, что система в целом справляется со своей задачей, однако заметная часть отмен и ситуаций, когда водитель не находится, подчёркивает влияние перегруженного трафика и высокой плотности города.
Распределение стоимости поездок показывает, что большинство заказов находится в относительно невысоком ценовом диапазоне. Даже с учётом перевода в рубли такси остаётся услугой, требующей осознанного выбора, особенно в контексте уровня доходов в Индии. Это подтверждает мысль о том, что такси здесь — не универсальный транспорт, а скорее удобный, но ограниченно доступный инструмент передвижения.
Анализ временной динамики заказов выявил чёткий дневной пик, что отражает общий ритм городской жизни и совпадает с периодами максимальной нагрузки на дороги. Географическое распределение поездок, в свою очередь, показывает концентрацию спроса в наиболее активных и плотных районах, где альтернативные способы передвижения часто оказываются менее эффективными.
В совокупности все визуализации складываются в единый образ: такси в Индии — это сервис, существующий на границе между технологичностью и городским хаосом, где спрос, цена и доступность тесно связаны с социальными и инфраструктурными условиями.
Описание применения генеративной модели и вспомогательных инструментов
1. Kaggle — Платформа была использована для поиска и загрузки датасета.
2. Google Colab — Весь процесс работы: обработка данных и визуализация.
3. Библиотеки Python kagglehub — для автоматического скачивания датасета matplotlib.font_manager — для подключения кастомного шрифта pandas — использовалась для загрузки датасета, очистки, преобразования и анализа табличных данных. matplotlib — основной инструмент для построения графиков в проекте. numpy — применялась для работы с числовыми данными и расчёта вспомогательных величин при построении графиков.
4. recraft.ai — Использовала для генерации обложки и иллюстраций.
5. Цветовая палитра (Adobe Color)
6. ChatGPT — Нейросеть применялась для генерации и оптимизации кода, настройки визуального стиля графиков и корректировки функций анализа.
Датасет, блокнот и шрифт