Объедините мощь 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

Ниже вы найдете объяснение каждой строки кода:

  1. n = folium.Map(location=[20,0], tiles="OpenStreetMap", zoom_start=3) — эта строка создает объект карты Folium с именем n с начальным местоположением широты 20 и долготы 0. Карта будет использовать фрагменты OpenStreetMap и начнется с уровня масштабирования 3.
  2. for i in range(0,len(df)): — эта строка запускает цикл for, который будет перебирать строки кадра данных Pandas под названием df. len(df) возвращает количество строк в DataFrame, поэтому этот цикл for будет повторяться от 0 до len(df)-1.
  3. folium.CircleMarker( — Эта строка создает новый объект CircleMarker из библиотеки Folium. CircleMarker — это круглый маркер, который можно добавить на карту Folium.
  4. location=[df.iloc[i]['lat'], df.iloc[i]['lon']] — эта строка устанавливает положение CircleMarker в значения широты и долготы iй строки в df DataFrame. Метод .iloc используется для выбора iй строки, а клавиши ['lat'] и ['lon'] используются для выбора столбцов широты и долготы соответственно.
  5. popup=df.iloc[i]['name'] — эта строка устанавливает текст, который будет отображаться во всплывающем окне при нажатии на CircleMarker, на значение столбца 'name' i строки df DataFrame.
  6. radius=float(df.iloc[i]['value']) — эта строка устанавливает радиус CircleMarker в значение столбца 'value' i строки df DataFrame, преобразованного в число с плавающей запятой.
  7. color='#69b3a2' — эта строка устанавливает цвет CircleMarker в шестнадцатеричный код цвета.
  8. fill=True — эта строка устанавливает для свойства fill элемента CircleMarker значение True, что означает, что круг будет заполнен.
  9. fill_color='#69b3a2' — эта строка устанавливает цвет заливки CircleMarker в шестнадцатеричный код цвета.
  10. ).add_to(n) — эта строка добавляет CircleMarker к объекту карты n.
  11. n — эта строка возвращает объект карты n, который будет отображать карту со всеми добавленными к ней объектами CircleMarker.

После запуска приведенного выше кода вы получите карту, которая выглядит примерно так:

Это всего лишь отправная точка, и вы можете придумать еще более интересные карты, используя библиотеку folium. Существует ряд настроек, которые вы можете сделать для своих карт. Вот официальная ссылка на документацию folium.

Не пропустите больше материалов, связанных с Python, — подпишитесь на мои блоги.