В этой статье я расскажу о том, как использовать Python для визуализации пространственных данных и генерирования идей из этих данных с помощью хорошо известной библиотеки Python.прожилок,
Примечание: когда я говорю пространственные данные в этой статье, я имею в виду все виды данных, которые содержат географические (широта, долгота, высота) как часть своей функции.
Я предполагаю, что вы уже понимаете о:
Есть несколько явных преимуществ визуализации пространственных данных с помощью карт:
Заявление Альберто Каира в его книге Функциональное искусство: введение в информационную графику и визуализацию красноречиво выражает вышеперечисленные моменты:
«Графика не должна упрощать сообщения. Они должны прояснить их, выделить тенденции, раскрыть закономерности и раскрыть реальности, невиданные ранее ».
Использование карт вместо других форм построения диаграмм позволяет намвыделять тенденции, раскрывать закономерности и раскрывать реальности, невиданные ранеекогда дело доходит до пространственных данных. Это также помогает нам вполучить ясностьо данных, больше, чем просто упрощение самих данных.
Чтобы процитировать со страницы Github библиотеки Python Folium:
«Folium основывается на сильных сторонах обработки данных экосистемы Python и сильных сторон библиотеки Leaflet.js. Управляйте своими данными в Python, а затем визуализируйте их на карте Leaflet через Folium ».
Folium - это библиотека Python, которая позволяет нам визуализировать пространственные данные в интерактивном режиме, прямо в среде ноутбуков, которую многие (по крайней мере, я) предпочитают. Библиотека очень интуитивно понятна в использовании, и она предлагает высокую степень интерактивности с низкой кривой обучения. Лучше всего, это всеОткрытый исходный код 🎉
Мы будем использовать данные из Набор данных о продолжительности поездки в Нью-Йорк что можно получить из Kaggle, который мы будем использовать в этой статье. Набор данных доступен для загрузки по ссылке выше, и на странице также содержится документация по столбцам, которые существуют в наборе данных.
Этот набор данных содержит 2 отдельных файла данных, которыеtrain.csvа такжеtest.csv.Разница между набором данных заключается в том, чтоtrain.csvфайл содержит дополнительный столбец, которыйTRIP_DURATION.Мы не будем фокусироваться на этом в этом примере, поэтому нам не понадобится этот дополнительный столбец.
Мы собираемся задать вопрос-макет, к которому мы будем стремиться в этом анализе (чтобы дать статье ощущение направления)
Город планирует построить остановки такси, места по всему городу, где люди могут забрать / высадить такси и ждать, пока их заберут такси. Эта инициатива направлена на:
Вам поручено предложить лучшие места для этих остановок, а также составить представление о количестве поездок по городу в течение дня.
Мы начнем с импорта библиотек, которые мы будем использовать,Пандыа такжеFolium,импортировать все файлы, которые мы будем использовать, удаливTRIP_DURATIONстолбец, который я упомянул в предыдущем разделе, и объединение двух разных файлов в один кадр данных.
Снимок экрана выше показывает предварительный просмотр данных, с которыми мы будем работать. Глядя на набор данных, можно сказать, что у нас достаточно много данных о поездке, с которыми мы сможем работать (2M + строки за 6 месяцев данных). Некоторые столбцы, такие как месяц,или другие функции времени могут быть созданы с помощьюDatetimeпакет в Python Кроме того, этот набор данных выглядит готовым для использованияпрожилок(Фолиуму в основном нужны только данные по широте / долготе, чтобы иметь возможность выполнять свои функции)
Как вы видите, мы можем получить месяц, неделю, день и час из столбца pickup_datetime (который также преобразуется в столбец datetime вместо объекта). Мы будем использовать эти столбцы в последующих частях нашего анализа.
Прежде чем мы начнем работать с визуализациями с использованием Folium, необходимо отметить несколько вещей
folium.Map ()
Этот метод класса всегда будет первым, что вы выполняете при работе с Folium. Цель этой функции - создать объект карты по умолчанию, который будет отображаться вашей записной книжкой, и объект, который мы будем строить поверх наших визуализаций.
Мы можем начать с нашей визуализации карты, определив объект карты по умолчанию.
В этой функции класса есть несколько параметров, которые я обычно использую:
Есть также много других параметров, которые могут быть установлены в этом методе класса, который вы можете прочитать из Вот,
Тепловая карта()
Мы будем визуализировать данные о поездках, которые у нас есть сейчас, используя методы классаТепловая карта(), Эта функция класса может использоваться для наложения тепловой карты на объект карты, который мы создали ранее.
Из приведенной выше визуализации карты видно, что существует большой спрос на поездки на такси из районов Манхэттена, а также из районов Квинса и Бруклина, которые находятся ближе к Манхэттену. Глядя на карту, мы также видим, что есть места, где спрос вокруг этой области выше, чем вокруг нее.
После добавленияfolium.ClickForMarker ()Если вы возьмете объект карты, который мы создали, мы можем щелкнуть на местах внутри самой карты, чтобы добавить маркеры того места, где мы рекомендуем размещать эти остановки такси для фазы 1. Есть некоторые точки, которые расположены в аэропортах в Нью-Йорке, таким образом, мы можем пропустить эти места для фазы 1, так как в аэропортах уже есть места, где водители могут искать такси.
HeatMapWithTime ()
Мы также можем анимировать наши тепловые карты, чтобы изменить отображаемые на них данные на основе определенных измерений (т. Е. Час, месяц), используя метод класса, называемыйHeatMapWithTime (), Этот метод позволит нам анимировать тепловую карту, отображаемую нашим ноутбуком.
Во-первых, нам нужно создать список, содержащий список значений, которые мы хотим построить, сгруппированных по измерению, которое мы хотим использовать (в этом примере мы будем использоватьчаскак измерение).
После того, как мы сгенерировали данные, которые мы будем использовать дляHeatMapWithTimeметод класса, мы можем вызвать метод и добавить его на нашу карту
Изучив приведенный выше результат, можно увидеть, что в течение дня всегда будет поездка из района Манхэттена, поэтому мы, вероятно, установим много остановок по всему району Манхэттена, поскольку мы увеличиваем масштаб проекта до большего количества остановок по всему маршруту. город
Как показано выше, можно увидеть, что Folium очень интуитивно понятен для использования в качестве способа визуализации пространственных данных. В Folium есть множество встроенных в него функций - от тепловых карт, анимации, маркеров и многих других функций, которые мне не удается описать в этой статье.
Из вышеприведенного примера также видно, что, используя карты вместо других форм визуализации, мы действительно можемвыделять тенденции, раскрывать закономерности и раскрывать реальности, невиданные ранеекогда дело доходит до пространственных данных. Самое главное, это приносит совершенно новый уровеньясностьо данных, которые у нас есть.
Вы можете скачать сопроводительную записную книжку, использованную в этой статье здесь: https://colab.research.google.com/drive/1HJB7UGj7YuUEJi-cKZRAr3O4Dlym2KrP
Функциональное искусство: введение в информационную графику и визуализацию книга, рассказывающая об эффективной визуализации Альберто Каира.
https://python-visualization.github.io/folium/docs-v0.6.0/quickstart.html#Getting-Started Краткое руководство по Folium, невероятно удобное для начала работы с Folium.
http://python-visualization.github.io/folium/docs-v0.5.0/modules.html Страница документации Folium.
https://github.com/python-visualization/folium Страница Folium Github.