Оглавление:

Панель мониторинга COVID19 на карте мира (с использованием Python): 16 шагов
Панель мониторинга COVID19 на карте мира (с использованием Python): 16 шагов

Видео: Панель мониторинга COVID19 на карте мира (с использованием Python): 16 шагов

Видео: Панель мониторинга COVID19 на карте мира (с использованием Python): 16 шагов
Видео: Python Junior подкаст. Говорим про девопс со спецами по девопс. 2024, Декабрь
Anonim
Панель управления COVID19 на карте мира (с использованием Python)
Панель управления COVID19 на карте мира (с использованием Python)

Я знаю, что почти все из нас знают больше всего о COVID19.

И это руководство о создании пузырьковой карты для отображения данных (случаев) на карте мира в реальном времени.

Для большего удобства я добавил программу в репозиторий Github:

github.com/backshell/COVID19dashboard

Запасы

Никаких расходных материалов как таковых не требуется, и мы будем выполнять всю компьютерную программу через Блокнот GoogleColab. Так что для начала достаточно учетной записи Gmail.

Colab Notebooks / Colaboratory - это исследовательский проект Google, созданный для распространения информации об образовании и исследованиях в области машинного обучения. Это среда ноутбука Jupyter, которая не требует настройки для использования и полностью работает в облаке.

И НИКАКАЯ установка не требуется на вашем компьютере.

Шаг 1. Понимание внутреннего процесса (база данных)

Большинство программ извлекают данные из серверной части, а результат форматируется и публикуется во внешнем интерфейсе. И для этой конкретной программы нам потребуются реальные данные о COVID19.

G. W. C. Инженерная школа Уайтинга публикует статистику COVID19 через свою учетную запись github:

github.com/CSSEGISandData

С начала до настоящего времени статистика по COVID19 по странам публикуется в репозитории.

Таким образом, мы будем использовать их файлы в формате. CSV (сегментированные по строкам стран) и наносить данные на карту мира.

Шаг 2. Пакеты / библиотеки Python, используемые в программе

Ниже приведен список пакетов и библиотек Python, которые мы будем использовать. Позвольте мне кратко рассказать о назначении каждого из них.

numpy:

NumPy - это библиотека для языка программирования Python, добавляющая поддержку больших многомерных массивов и матриц, а также большой набор высокоуровневых математических функций для работы с этими массивами.

панды:

pandas - это программная библиотека, написанная для языка программирования Python для обработки и анализа данных.

matplotlib.pyplot:

pyplot в основном предназначен для интерактивных графиков и простых случаев программного создания графиков.

plotly.express:

Plotly Express - это новая библиотека визуализации Python высокого уровня. Простой синтаксис для сложных диаграмм.

лист:

folium позволяет легко визуализировать данные, обработанные в Python, на интерактивной карте листовок.

plotly.graph_objects:

Пакет plotly Python существует для создания, управления и визуализации графических фигур (то есть диаграмм, графиков, карт и диаграмм), представленных структурами данных, также называемыми фигурами.

Морской:

Seaborn - это библиотека визуализации данных Python, основанная на matplotlib. Он предоставляет высокоуровневый интерфейс для рисования привлекательных и информативных статистических графиков.

ipywidgets:

ipywidgets - это интерактивные HTML-виджеты для записных книжек Jupyter, JupyterLab и ядра IPython. Ноутбуки оживают, когда используются интерактивные виджеты.

Установка этих пакетов не требуется, так как мы будем работать с этой программой полностью в Блокноте Google Colab (давайте оставим ее как colab в этом руководстве).

Шаг 3. Настройка накопителя для использования Colab

Настройка накопителя для использования Colab
Настройка накопителя для использования Colab
Настройка накопителя для использования Colab
Настройка накопителя для использования Colab

На Диске создайте папку для записных книжек.

С технической точки зрения, этот шаг не является обязательным, если вы хотите просто начать работать в Colab. Однако, поскольку Colab работает без вашего накопителя, неплохо было бы указать папку, в которой вы хотите работать. Вы можете сделать это, зайдя на свой Google Диск и нажав «Создать», а затем создав новую папку.

Затем вы можете создать здесь colabnotebook или начать работать напрямую в colab и связать папку на диске, созданную для работы colab.

Это хорошая практика, иначе колаб, который мы создаем, может выглядеть беспорядочно на нашем диске.

Шаг 4: Обзор программы

В этой программе / блокноте мы будем создавать следующее для COVID-19:

  • Список стран по количеству дел
  • Всего случаев на карте мира

Шаг 5: Панель управления COVID-19 | Часть 1

Панель управления COVID-19 | Часть 1
Панель управления COVID-19 | Часть 1

Вы можете использовать future, чтобы помочь перенести свой код с Python 2 на Python 3 сегодня - и при этом он по-прежнему будет работать на Python 2.

Если у вас уже есть код Python 3, вы можете вместо этого использовать future, чтобы предложить совместимость с Python 2 практически без дополнительной работы.

future поддерживает реорганизацию стандартной библиотеки (PEP 3108) с помощью одного из нескольких механизмов, позволяя получить доступ к большинству перемещенных модулей стандартной библиотеки под их именами Python 3 и местоположениями в Python 2.

Шаг 6: Панель управления COVID-19 | Часть 2

Панель управления COVID-19 | Часть 2
Панель управления COVID-19 | Часть 2

Функция взаимодействия (ipywidgets.interact) автоматически создает элементы управления пользовательского интерфейса (UI) для интерактивного изучения кода и данных. Это самый простой способ начать использовать виджеты IPython.

Шаг 7: Панель управления COVID-19 | Часть 3

Панель управления COVID-19 | Часть 3
Панель управления COVID-19 | Часть 3

display_html отображает HTML-представления объекта. То есть он ищет зарегистрированные методы отображения, такие как _repr_html_, и вызывает их, отображая результат, если таковой имеется.

Шаг 8: Панель управления COVID-19 | Часть 4

Панель управления COVID-19 | Часть 4
Панель управления COVID-19 | Часть 4

Список пакетов (как объяснено в шаге 2) импортируется в программу.

Шаг 9: Панель управления COVID-19 | Часть 5

death_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv')

Verified_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv')

recovered_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv')

country_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/web-data/data/cases_country.csv')

Как объяснялось в шаге 1, чтение данных в виде файла.csv из репозитория.

Шаг 10: Панель управления COVID-19 | Часть 6

Панель управления COVID-19 | Часть 6
Панель управления COVID-19 | Часть 6

Мы переименуем имена столбцов df в нижний регистр

Шаг 11: Панель управления COVID-19 | Часть 7

Панель управления COVID-19 | Часть 7
Панель управления COVID-19 | Часть 7

Мы изменим провинцию / штат на штат и страну / регион на страну

Шаг 12: Панель управления COVID-19 | Часть 8

Панель управления COVID-19 | Часть 8
Панель управления COVID-19 | Часть 8

Подсчитаем общее количество подтвержденных случаев, случаев смерти и выздоровления.

Шаг 13: Панель управления COVID-19 | Часть 9

Панель управления COVID-19 | Часть 9
Панель управления COVID-19 | Часть 9
Панель управления COVID-19 | Часть 9
Панель управления COVID-19 | Часть 9

Мы будем отображать общую статистику в формате HTML, поскольку мы импортировали определенные библиотеки на шаге 7 ранее, как показано ниже:

из IPython.core.display import display, HTML

Шаг 14: Список стран (Топ-10) по количеству случаев | Панель управления COVID-19

Список стран (Топ10) по количеству случаев | Панель управления COVID-19
Список стран (Топ10) по количеству случаев | Панель управления COVID-19
Список стран (Топ10) по количеству случаев | Панель управления COVID-19
Список стран (Топ10) по количеству случаев | Панель управления COVID-19

fig = go. FigureWidget (layout = go. Layout ())

Функция FigureWidget возвращает пустой объект FigureWidget с осями x и y по умолчанию. Интерактивные виджеты Jupyter имеют атрибут макета, раскрывающий ряд свойств CSS, влияющих на расположение виджетов.

pd. DataFrame

создает фрейм данных с использованием словаря с трехцветным фоном для заполнения результирующего.

def show_latest_cases (TOP)

сортирует значения по подтвержденному убывающему порядку.

взаимодействовать (show_latest_cases, TOP = '10 ')

Функция взаимодействия (ipywidgets.interact) автоматически создает элементы управления пользовательского интерфейса (UI) для интерактивного изучения кода и данных.

ipywLayout = widgets. Layout (border = 'сплошной 2 пикселя, зеленый')

создает границу с линиями зеленого цвета шириной 2 пикселя для отображения результата.

Шаг 15: Общее количество случаев на карте мира | Панель управления COVID-19

Всего случаев на карте мира | Панель управления COVID-19
Всего случаев на карте мира | Панель управления COVID-19
Всего случаев на карте мира | Панель управления COVID-19
Всего случаев на карте мира | Панель управления COVID-19

world_map = folium. Map (location = [11, 0], tile = "cartodbpositron", zoom_start = 2, max_zoom = 6, min_zoom = 2)

Folium - это инструмент, который заставляет вас выглядеть как картографический Бог, в то время как вся работа выполняется в серверной части. Это оболочка Python для инструмента под названием leaflet.js. В основном мы даем ему минимальные инструкции, JS выполняет кучу работы в фоновом режиме, и мы получаем очень и очень классные карты. Это отличный материал. Для наглядности карта технически называется «Карта-листовка». Инструмент, который позволяет вам называть их в Python, называется Folium.

Folium позволяет легко визуализировать данные, обработанные в Python, на интерактивной карте Leaflet. Он позволяет как привязать данные к карте для визуализации хороплет, так и передавать визуализации Винсента / Веги в качестве маркеров на карте.

для я в диапазоне (0, len (подтверждено_df))

В цикле for мы получим все подтвержденные случаи из формулировки на этапе 9.

лист. круг

Мы создаем пузырьковую карту, используя folium. Circle () для итеративного добавления кругов.

location = [Verified_df.iloc ['lat'], Verified_df.iloc ['long'], из Verified_df подтвержденных случаев с шага 5 мы извлекаем значения широты и долготы, соответствующие каждому местоположению / стране.

радиус = (int ((np.log (formed_df.iloc [i, -1] +1.00001))) + 0.2) * 50000, создание объекта радиуса для нанесения пузырьковых кругов на карту мира по странам.

цвет = 'красный', fill_color = 'индиго', Сделайте контур пузырькового круга красным, а внутреннюю часть - индиго.

и, наконец, нанесение кругов на карту мира с помощью объекта всплывающей подсказки.

Шаг 16: результат

Результат!
Результат!
Результат!
Результат!

Вложение показывает:

  1. Список стран по количеству дел
  2. Всего случаев на карте мира

Рекомендуемые: