Spisu treści:

Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona): 16 kroków
Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona): 16 kroków

Wideo: Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona): 16 kroków

Wideo: Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona): 16 kroków
Wideo: Yak Shaving with Tim Mitra 2024, Grudzień
Anonim
Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona)
Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona)

Wiem, że prawie każdy z nas zna większość informacji o COVID19.

A ta instrukcja dotyczy tworzenia mapy bąbelkowej, aby wykreślić dane (przypadków) w czasie rzeczywistym na mapie świata.

Dla większej wygody dodałem program do repozytorium Github:

github.com/backshell/COVID19dashboard

Kieszonkowe dzieci

Nie są wymagane żadne materiały eksploatacyjne, a cały program komputerowy wykonalibyśmy za pomocą Notatnika GoogleColab. Więc konto gmail powinno wystarczyć na początek.

Colab Notebooks / Colaboratory to projekt badawczy Google stworzony w celu rozpowszechniania edukacji i badań nad uczeniem maszynowym. Jest to środowisko notebooków Jupyter, które nie wymaga konfiguracji i działa całkowicie w chmurze.

I NIE wymaga instalacji w twoim urządzeniu.

Krok 1: Zrozumienie procesu backendu (bazy danych)

Większość każdego oprogramowania pobiera dane z zaplecza, a wynikowy jest formatowany i publikowany na interfejsie użytkownika. A dla tego konkretnego programu potrzebowalibyśmy prawdziwych danych COVID19.

GWC Whiting School of Engineering publikuje statystyki COVID19 za pośrednictwem swojego konta github:

github.com/CSSEGISandData

Od początku do daty w repozytorium publikowane są krajowe statystyki COVID19.

Więc użyjemy ich plików w formacie. CSV (podzielone na segmenty krajów) i wykreślimy dane na mapie świata.

Krok 2: Pakiety/biblioteki Pythona używane w programie

Poniżej znajduje się lista pakietów i bibliotek Pythona, których będziemy używać. Pozwólcie, że przedstawię przegląd celów każdego z nich.

liczba:

NumPy to biblioteka dla języka programowania Python, która dodaje obsługę dużych, wielowymiarowych tablic i macierzy, a także dużą kolekcję funkcji matematycznych wysokiego poziomu do działania na tych tablicach.

pandy:

pandas to biblioteka oprogramowania napisana dla języka programowania Python do manipulacji i analizy danych.

matplotlib.pyplot:

pyplot jest przeznaczony głównie do interaktywnych działek i prostych przypadków programowego generowania działek

plotly.express:

Plotly Express to nowa, wysokopoziomowa biblioteka wizualizacji Pythona. Prosta składnia dla złożonych wykresów.

folia:

folium ułatwia wizualizację danych, które zostały zmanipulowane w Pythonie na interaktywnej mapie ulotki.

plotly.graph_objects:

Pakiet plotly Python istnieje do tworzenia, manipulowania i renderowania figur graficznych (tj. wykresów, wykresów, map i diagramów) reprezentowanych przez struktury danych zwane również figurami.

morski:

Seaborn to biblioteka wizualizacji danych Pythona oparta na matplotlib. Zapewnia interfejs wysokiego poziomu do rysowania atrakcyjnej i informacyjnej grafiki statystycznej.

ipywidgety:

ipywidgets to interaktywne widżety HTML dla notebooków Jupyter, JupyterLab i jądra IPython. Notatniki ożywają, gdy używane są interaktywne widżety.

Instalowanie tych pakietów nie jest wymagane, ponieważ pracowalibyśmy nad tym programem w całości w Notatniku Google Colab (zachowajmy go jako colab w tej instrukcji).

Krok 3: Konfigurowanie dysku, aby korzystać z Colab

Konfigurowanie dysku, aby korzystać z Colab
Konfigurowanie dysku, aby korzystać z Colab
Konfigurowanie dysku, aby korzystać z Colab
Konfigurowanie dysku, aby korzystać z Colab

Na Dysku utwórz folder na swoje notatniki.

Technicznie rzecz biorąc, ten krok nie jest całkowicie konieczny, jeśli chcesz po prostu rozpocząć pracę w Colab. Ponieważ jednak Colab działa na twoim dysku, nie jest złym pomysłem określenie folderu, w którym chcesz pracować. Możesz to zrobić, przechodząc na Dysk Google i klikając „Nowy”, a następnie tworząc nowy folder.

Następnie możesz utworzyć colabnotebook tutaj lub rozpocząć pracę bezpośrednio w colab i połączyć folder na dysku, który jest tworzony do pracy w colab.

To dobra praktyka, w przeciwnym razie colab, który tworzymy, może wyglądać bałagan w naszym dysku.

Krok 4: Przegląd programu

W tym programie/notatniku stworzylibyśmy dla COVID-19:

  • Lista krajów według liczby przypadków
  • Całkowita liczba spraw na mapie świata

Krok 5: Panel kontrolny COVID-19 | Część 1

Panel kontrolny COVID-19 | Część 1
Panel kontrolny COVID-19 | Część 1

Możesz użyć future, aby pomóc w przeniesieniu kodu z Pythona 2 do Pythona 3 już dziś – i nadal mieć go uruchamianego w Pythonie 2.

Jeśli masz już kod w Pythonie 3, możesz zamiast tego użyć future, aby zaoferować kompatybilność z Pythonem 2 prawie bez dodatkowej pracy.

future obsługuje reorganizację biblioteki standardowej (PEP 3108) za pomocą jednego z kilku mechanizmów, umożliwiając dostęp do większości przeniesionych modułów bibliotek standardowych pod ich nazwami i lokalizacjami w języku Python 3 w języku Python 2.

Krok 6: Pulpit nawigacyjny COVID-19 | Część 2

Panel kontrolny COVID-19 | Część 2
Panel kontrolny COVID-19 | Część 2

Funkcja interact (ipywidgets.interact) automatycznie tworzy kontrolki interfejsu użytkownika (UI) do interaktywnego eksplorowania kodu i danych. To najprostszy sposób na rozpoczęcie korzystania z widżetów IPythona.

Krok 7: Pulpit nawigacyjny COVID-19 | Część 3

Panel kontrolny COVID-19 | Część 3
Panel kontrolny COVID-19 | Część 3

display_html wyświetla reprezentacje HTML obiektu. Oznacza to, że wyszukuje zarejestrowane metody wyświetlania, takie jak _repr_html_, i wywołuje je, wyświetlając wynik, jeśli taki istnieje.

Krok 8: Pulpit nawigacyjny COVID-19 | Część 4

Panel kontrolny COVID-19 | Część 4
Panel kontrolny COVID-19 | Część 4

Lista pakietów (jak wyjaśniono w kroku 2) zostaje zaimportowana do programu.

Krok 9: Pulpit nawigacyjny COVID-19 | Część 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')

potwierdzone_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')

odzyskane_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')

Jak wyjaśniono w kroku 1, odczytywanie danych jako pliku.csv z repozytorium.

Krok 10: Pulpit nawigacyjny COVID-19 | Część 6

Panel kontrolny COVID-19 | Część 6
Panel kontrolny COVID-19 | Część 6

Zmienimy nazwy kolumn df na małe litery

Krok 11: Pulpit nawigacyjny COVID-19 | Część 7

Panel kontrolny COVID-19 | Część 7
Panel kontrolny COVID-19 | Część 7

Zmienimy prowincję/stan na stan i kraj/region na kraj

Krok 12: Pulpit nawigacyjny COVID-19 | Część 8

Panel kontrolny COVID-19 | Część 8
Panel kontrolny COVID-19 | Część 8

Obliczymy całkowitą liczbę przypadków potwierdzonych, zgonów i odzyskanych.

Krok 13: Pulpit nawigacyjny COVID-19 | Część 9

Panel kontrolny COVID-19 | Część 9
Panel kontrolny COVID-19 | Część 9
Panel kontrolny COVID-19 | Część 9
Panel kontrolny COVID-19 | Część 9

Wyświetlimy łączne statystyki w formacie HTML, ponieważ zaimportowaliśmy określone biblioteki w kroku 7 wcześniej, jak poniżej:

z IPython.core.display importuj wyświetlanie, HTML

Krok 14: Lista krajów (Top 10) według liczby przypadków | Panel COVID-19

Lista krajów (Top10) według liczby przypadków | Panel COVID-19
Lista krajów (Top10) według liczby przypadków | Panel COVID-19
Lista krajów (Top10) według liczby przypadków | Panel COVID-19
Lista krajów (Top10) według liczby przypadków | Panel COVID-19

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

Funkcja FigureWidget zwraca pusty obiekt FigureWidget z domyślnymi osiami x i y. Interaktywne widżety Jupyter mają atrybut układu ujawniający szereg właściwości CSS, które wpływają na układ widżetów.

pd. DataFrame

tworzy ramkę danych za pomocą słownika, z trzema kolorowymi tłami do wypełnienia.

def pokaż_najnowsze_przypadki (GÓRA)

sortuje wartości według potwierdzonej kolejności malejącej.

interact(show_latest_cases, TOP='10')

Funkcja interact (ipywidgets.interact) automatycznie tworzy kontrolki interfejsu użytkownika (UI) do interaktywnego eksplorowania kodu i danych.

ipywLayout = widgets. Layout(border='solidne 2px zielone')

tworzy obramowanie z 2 pikselowymi liniami koloru zielonego, aby wyświetlić wynikowy.

Krok 15: Suma spraw na mapie świata | Panel COVID-19

Całkowita liczba przypadków na mapie świata | Panel COVID-19
Całkowita liczba przypadków na mapie świata | Panel COVID-19
Całkowita liczba przypadków na mapie świata | Panel COVID-19
Całkowita liczba przypadków na mapie świata | Panel COVID-19

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

Folium to narzędzie, które sprawia, że wyglądasz jak bóg map, podczas gdy cała praca jest wykonywana w zapleczu. Jest to opakowanie Pythona dla narzędzia o nazwie ulotki.js. Zasadniczo dajemy mu minimalne instrukcje, JS wykonuje mnóstwo pracy w tle i dostajemy kilka bardzo, bardzo fajnych map. To świetna sprawa. Dla jasności mapa jest technicznie nazywana „Mapą ulotkową”. Narzędzie, które pozwala ci je nazywać w Pythonie, nazywa się „Folium”.

Folium ułatwia wizualizację danych, które zostały zmanipulowane w Pythonie na interaktywnej mapie ulotek. Umożliwia zarówno powiązanie danych z mapą w celu wizualizacji kartogramów, jak i przekazywanie wizualizacji Vincent/Vega jako znaczników na mapie.

for i in range(0, len(confirmed_df))

W pętli for otrzymamy wszystkie potwierdzone przypadki z formuły kroku 9.

folium. Okrąg

Tworzymy mapę bąbelkową, używając folium. Circle() do iteracyjnego dodawania kółek.

location=[confirmed_df.iloc['lat'], potwierdzone_df.iloc['long'], z potwierdzonego_df potwierdzonych przypadków z kroku 5 wyodrębniamy wartości szerokości i długości geograficznej odpowiadające danym lokalizacji/krajowi.

promień=(int((np.log(confirmed_df.iloc[i, -1]+1.00001)))+0.2)*50000, tworzenie obiektu promienia, aby wykreślić kółka bąbelkowe na mapie świata w różnych krajach.

color='czerwony', fill_color='indygo', sprawiając, że kontur koła bąbelkowego będzie czerwony, a obszar wewnętrzny jak indygo.

i wreszcie kreślenie okręgów na world_map za pomocą obiektu podpowiedzi.

Krok 16: Wynik

Wynik!
Wynik!
Wynik!
Wynik!

Załącznik pokazuje:

  1. Lista krajów według liczby przypadków
  2. Całkowita liczba spraw na mapie świata

Zalecana: