Объедините мощь Python с Folium(JS) для создания интерактивных пузырьковых карт
Python — универсальный язык с обширным набором инструментов для создания интерактивных визуализаций. Когда дело доходит до визуализации данных в Python, варианты выходят за рамки только наиболее часто используемых графиков и диаграмм, доступных в аналитических библиотеках. Комбинируя Python с другими инструментами, такими как OpenCV, Seaborn, Foliom и библиотеками интерактивных графиков, вы можете создавать привлекательные визуализации, которые эффективно передают ваши данные.
Одним из типов визуализации, который становится все более популярным в таких приложениях, как Uber и Lyft, является пузырьковая карта. В этой статье вы узнаете, что такое пузырьковые карты и как их использовать в своих проектах с использованием кода Python. Мы рассмотрим, как создавать интерактивные пузырьковые карты с помощью Python. К концу этой статьи вы будете владеть навыками создания впечатляющих визуализаций данных и эффективного обмена своими идеями.
Что такое пузырьковая карта?
Пузырьковая карта визуализирует данные с помощью пузырьков или кругов, которые размещаются на карте для представления определенного местоположения и связанного с ним значения. Размер кружка представляет собой относительную величину отображаемого значения.
Пузырьковые карты полезны для отображения данных, имеющих географический компонент, и для быстрой передачи закономерностей или тенденций в данных.
Фолиум
Для создания пузырьковых карт мы будем использовать библиотеку Python под названием Folium. Folium позволяет нам создавать интерактивные карты и визуализации на Python. Он построен на основе популярной картографической библиотеки leaflet.js.
Если у вас не установлен Folium, используйте следующую команду для установки Folium:
pip install folium
После установки Folium давайте создадим очень простую карту, используя эту библиотеку. Используйте приведенный ниже код для создания карты с помощью Folium:
import folium m = folium.Map(location=[45.5236, -122.6750]) m
Этот код выводит следующую карту:
Реализация пузырьковых карт
Теперь, когда вы понимаете, что такое пузырьковые карты, мы можем приступить к реализации пузырьковых карт.
Импортируйте все необходимые библиотеки. Для этого пошагового руководства необходимо импортировать следующие библиотеки:
import pandas #--> for reading the dataset import folium #--> for making the maps
После импорта библиотек прочитайте набор данных и сохраните его в кадре данных pandas. Чтобы сделать этот шаг, используйте приведенный ниже код:
df = pd.read_csv('location_dataset.csv') df
Запуск приведенного выше кода должен дать вам следующий результат:
Каждая запись в кадре данных показывает местоположение с его координатами и значениями. Значения просто представляют величину некоторой метрики в определенном месте. Это может быть количество событий, происходящих в определенном месте, количество автомобилей и т. д.
После загрузки набора данных запустите приведенный ниже код, чтобы создать пузырьковую карту:
n = folium.Map(location=[20,0], tiles="OpenStreetMap", zoom_start=3) for i in range(0,len(df)): folium.CircleMarker( location=[df.iloc[i]['lat'], df.iloc[i]['lon']], popup=df.iloc[i]['name'], radius=float(df.iloc[i]['value']), color='#69b3a2', fill=True, fill_color='#69b3a2' ).add_to(n) n
Ниже вы найдете объяснение каждой строки кода:
n = folium.Map(location=[20,0], tiles="OpenStreetMap", zoom_start=3)
— эта строка создает объект карты Folium с именемn
с начальным местоположением широты 20 и долготы 0. Карта будет использовать фрагменты OpenStreetMap и начнется с уровня масштабирования 3.for i in range(0,len(df)):
— эта строка запускает циклfor
, который будет перебирать строки кадра данных Pandas под названиемdf
.len(df)
возвращает количество строк в DataFrame, поэтому этот циклfor
будет повторяться от 0 доlen(df)-1
.folium.CircleMarker(
— Эта строка создает новый объектCircleMarker
из библиотеки Folium.CircleMarker
— это круглый маркер, который можно добавить на карту Folium.location=[df.iloc[i]['lat'], df.iloc[i]['lon']]
— эта строка устанавливает положениеCircleMarker
в значения широты и долготыi
й строки вdf
DataFrame. Метод.iloc
используется для выбораi
й строки, а клавиши['lat']
и['lon']
используются для выбора столбцов широты и долготы соответственно.popup=df.iloc[i]['name']
— эта строка устанавливает текст, который будет отображаться во всплывающем окне при нажатии наCircleMarker
, на значение столбца'name'
i
строкиdf
DataFrame.radius=float(df.iloc[i]['value'])
— эта строка устанавливает радиусCircleMarker
в значение столбца'value'
i
строкиdf
DataFrame, преобразованного в число с плавающей запятой.color='#69b3a2'
— эта строка устанавливает цветCircleMarker
в шестнадцатеричный код цвета.fill=True
— эта строка устанавливает для свойстваfill
элементаCircleMarker
значениеTrue
, что означает, что круг будет заполнен.fill_color='#69b3a2'
— эта строка устанавливает цвет заливкиCircleMarker
в шестнадцатеричный код цвета.).add_to(n)
— эта строка добавляетCircleMarker
к объекту картыn
.n
— эта строка возвращает объект картыn
, который будет отображать карту со всеми добавленными к ней объектамиCircleMarker
.
После запуска приведенного выше кода вы получите карту, которая выглядит примерно так:
Это всего лишь отправная точка, и вы можете придумать еще более интересные карты, используя библиотеку folium. Существует ряд настроек, которые вы можете сделать для своих карт. Вот официальная ссылка на документацию folium.
Не пропустите больше материалов, связанных с Python, — подпишитесь на мои блоги.