Obsah:

Hlavný panel COVID19 na mape sveta (pomocou Pythonu): 16 krokov
Hlavný panel COVID19 na mape sveta (pomocou Pythonu): 16 krokov

Video: Hlavný panel COVID19 na mape sveta (pomocou Pythonu): 16 krokov

Video: Hlavný panel COVID19 na mape sveta (pomocou Pythonu): 16 krokov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Júl
Anonim
Hlavný panel COVID19 na mape sveta (pomocou Pythonu)
Hlavný panel COVID19 na mape sveta (pomocou Pythonu)

Viem, že takmer všetci vieme väčšinu informácií o COVID19.

A tento návod je o vytvorení bublinovej mapy na vykreslenie údajov (prípadov) v reálnom čase na mapu sveta.

Pre väčšie pohodlie som program pridal do úložiska Github:

github.com/backshell/COVID19dashboard

Zásoby

Nie sú potrebné žiadne zásoby a celý počítačový program by sme spravili prostredníctvom notebooku GoogleColab. Na začiatok by vám teda malo stačiť konto v Gmaile.

Colab Notebooks / Colaboratory je výskumný projekt spoločnosti Google vytvorený s cieľom šíriť vzdelávanie a výskum v oblasti strojového učenia. Je to notebookové prostredie Jupyter, ktoré nevyžaduje žiadne nastavenie a beží úplne v cloude.

A do zariadenia nie je potrebná žiadna inštalácia.

Krok 1: Pochopenie procesu backendu (databáza)

Väčšina všetkých softvérových programov načítava údaje zo servera a výsledný súbor je naformátovaný a publikovaný na klientskom rozhraní. A pre tento konkrétny program by sme požadovali skutočné údaje COVID19.

Spoločnosť G. W. C. Whiting School of Engineering zverejňuje štatistiky COVID19 prostredníctvom svojho účtu github:

github.com/CSSEGISandData

Štatistiky krajín COVID19 sú od začiatku do dátumu zverejňované v úložisku.

Použili by sme teda ich súbory vo formáte. CSV (segmentované podľa krajín) a údaje vykreslili na mapu sveta.

Krok 2: Balíky/knižnice Python použité v programe

Nasleduje zoznam balíkov a knižníc pythonu, ktoré by sme používali. Dovoľte mi poskytnúť prehľad o účele každého z nich.

numpy:

NumPy je knižnica pre programovací jazyk Python, ktorá pridáva podporu pre veľké viacrozmerné polia a matice spolu s veľkou zbierkou matematických funkcií na vysokej úrovni, ktoré na týchto poliach fungujú.

pandy:

pandas je softvérová knižnica napísaná pre programovací jazyk Python na manipuláciu a analýzu údajov.

matplotlib.pyplot:

pyplot je určený hlavne pre interaktívne grafy a jednoduché prípady generovania programatického diagramu

plotly.express:

Plotly Express je nová vysoko kvalitná vizualizačná knižnica Pythonu. Jednoduchá syntax pre zložité grafy.

folium:

folium uľahčuje vizualizáciu údajov, s ktorými sa manipulovalo v Pythone, na interaktívnej mape letákov.

plotly.graph_objects:

Plynulý balík Python existuje na vytváranie, manipuláciu a vykresľovanie grafických figúrok (t. J. Grafov, grafov, máp a diagramov) reprezentovaných dátovými štruktúrami označovanými aj ako obrázky.

seaborn:

Seaborn je knižnica vizualizácie údajov v jazyku Python založená na matplotlib. Poskytuje rozhranie na vysokej úrovni na kreslenie atraktívnej a informatívnej štatistickej grafiky.

ipywidgets:

ipywidgets sú interaktívne HTML widgety pre notebooky Jupyter, JupyterLab a jadro IPython. Notebooky ožívajú, keď sa používajú interaktívne miniaplikácie.

Inštalácia týchto balíkov nie je potrebná, pretože by sme tento program pracovali úplne v programe Google Colab Notebook (ponechajme ho v tomto návode ako colab).

Krok 3: Nastavenie disku na používanie Colab

Nastavenie disku na používanie Colabu
Nastavenie disku na používanie Colabu
Nastavenie disku na používanie Colabu
Nastavenie disku na používanie Colabu

Na Disku vytvorte priečinok pre prenosné počítače.

Technicky povedané, tento krok nie je úplne potrebný, ak chcete začať pracovať v službe Colab. Keďže však Colab pracuje na vašom disku, nie je na škodu zadať priečinok, v ktorom chcete pracovať. Môžete to urobiť tak, že prejdete na svoj Disk Google, kliknete na položku „Nový“a potom vytvoríte nový priečinok.

Potom sa môžete rozhodnúť vytvoriť tu colabnotebook alebo začať pracovať priamo v colape a prepojiť priečinok na disku, ktorý je vytvorený pre prácu s colabom.

Toto je osvedčený postup, inak môže koberec, ktorý vytvoríme, na našom disku pôsobiť chaoticky.

Krok 4: Prehľad programu

V tomto programe/notebooku by sme pre COVID-19 vytvorili nasledujúce:

  • Zoznam krajín podľa počtu prípadov
  • Celkový počet prípadov na mape sveta

Krok 5: Informačný panel COVID-19 | Časť 1

Informačný panel COVID-19 | Časť 1
Informačný panel COVID-19 | Časť 1

Future môžete použiť na to, aby ste dnes mohli prenášať svoj kód z Pythonu 2 do Pythonu 3 - a stále ho nechať bežať na Pythone 2.

Ak už máte kód Python 3, môžete namiesto toho použiť budúcnosť a ponúknuť kompatibilitu Pythonu 2 takmer bez ďalšej práce.

future podporuje štandardnú reorganizáciu knižnice (PEP 3108) jedným z niekoľkých mechanizmov, ktoré umožňujú prístup k väčšine presunutých modulov štandardnej knižnice pod ich názvami a umiestneniami v jazyku Python 3 v jazyku Python 2.

Krok 6: Informačný panel COVID-19 | Časť 2

Informačný panel COVID-19 | Časť 2
Informačný panel COVID-19 | Časť 2

Interaktívna funkcia (ipywidgets.interact) automaticky vytvára ovládacie prvky používateľského rozhrania (UI) na interaktívne skúmanie kódu a údajov. Je to najľahší spôsob, ako začať používať miniaplikácie IPythonu.

Krok 7: Informačný panel COVID-19 | Časť 3

Informačný panel COVID-19 | Časť 3
Informačný panel COVID-19 | Časť 3

display_html zobrazuje reprezentácie HTML objektu. To znamená, že vyhľadá zaregistrované metódy zobrazenia, ako napríklad _repr_html_, a zavolá ich a zobrazí prípadný výsledok.

Krok 8: Informačný panel COVID-19 | 4. časť

Informačný panel COVID-19 | 4. časť
Informačný panel COVID-19 | 4. časť

Zoznam balíkov (ako je vysvetlené v kroku 2) sa importuje do programu.

Krok 9: Informačný panel COVID-19 | Časť 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')

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

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

Ako je vysvetlené v kroku 1, čítanie údajov ako súboru.csv z úložiska.

Krok 10: Informačný panel COVID-19 | Časť 6

Informačný panel COVID-19 | Časť 6
Informačný panel COVID-19 | Časť 6

Názvy stĺpcov df premenujeme na malé písmená

Krok 11: Informačný panel COVID-19 | Časť 7

Informačný panel COVID-19 | Časť 7
Informačný panel COVID-19 | Časť 7

Provinciu/štát zmeníme na štát a krajinu/región na krajinu

Krok 12: Informačný panel COVID-19 | Časť 8

Informačný panel COVID-19 | Časť 8
Informačný panel COVID-19 | Časť 8

Vypočítame celkový počet potvrdených, úmrtí a uzdravených prípadov.

Krok 13: Informačný panel COVID-19 | Časť 9

Informačný panel COVID-19 | Časť 9
Informačný panel COVID-19 | Časť 9
Informačný panel COVID-19 | Časť 9
Informačný panel COVID-19 | Časť 9

Celkové štatistiky zobrazíme vo formáte HTML, pretože konkrétne knižnice sme importovali v kroku 7 skôr, ako je uvedené nižšie:

z IPython.core.display importovať zobrazenie, HTML

Krok 14: Zoznam krajín (10 najlepších) podľa počtu prípadov | Informačný panel COVID-19

Zoznam krajín (Top 10) podľa počtu prípadov | Informačný panel COVID-19
Zoznam krajín (Top 10) podľa počtu prípadov | Informačný panel COVID-19
Zoznam krajín (Top 10) podľa počtu prípadov | Informačný panel COVID-19
Zoznam krajín (Top 10) podľa počtu prípadov | Informačný panel COVID-19

fig = go. FigureWidget (rozloženie = go. Layout ())

Funkcia FigureWidget vráti prázdny objekt FigureWidget s predvolenými osami x a y. Interaktívne miniaplikácie Jupyter majú atribút rozloženie, ktorý odhaľuje množstvo vlastností CSS, ktoré majú vplyv na rozloženie miniaplikácií.

pd. DataFrame

vytvorí dátový rámec pomocou slovníka s tromi farebnými pozadiami, do ktorých sa výsledný súbor naplní.

def show_latest_cases (TOP)

zoradí hodnoty podľa potvrdeného zostupného poradia.

interagovať (show_latest_cases, TOP = '10 ')

Interaktívna funkcia (ipywidgets.interact) automaticky vytvára ovládacie prvky používateľského rozhrania (UI) na interaktívne skúmanie kódu a údajov.

ipywLayout = widgety. Rozloženie (ohraničenie = „plná 2 pixelov zelená“)

vytvorí orámovanie s 2px šírkovými čiarami zelenej farby, ktoré sa budú zobrazovať ako výsledné.

Krok 15: Celkový počet prípadov na mape sveta | Informačný panel COVID-19

Celkový počet prípadov na mape sveta | Informačný panel COVID-19
Celkový počet prípadov na mape sveta | Informačný panel COVID-19
Celkový počet prípadov na mape sveta | Informačný panel COVID-19
Celkový počet prípadov na mape sveta | Informačný panel COVID-19

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

Folium je nástroj, vďaka ktorému vyzeráte ako mapujúci boh, pričom všetka práca sa vykonáva na zadnom konci. Je to obálka Pythonu pre nástroj s názvom leaflet.js. V zásade dávame minimálne pokyny, JS robí veľa práce na pozadí a dostávame niekoľko veľmi, veľmi skvelých máp. Je to skvelá vec. Kvôli prehľadnosti sa mapa odborne nazýva „letáková mapa“. Nástroj, ktorý ich v Pythone nazveme, sa nazýva „Folium“.

Folium uľahčuje vizualizáciu údajov, s ktorými sa manipulovalo v Pythone, na interaktívnej mape letákov. Umožňuje ako väzbu údajov na mapu pre vizualizácie choropleth, tak aj odovzdávanie vizualizácií Vincent/Vega ako značiek na mape.

pre i v rozsahu (0, len (potvrdil_df))

V slučke for získame všetky potvrdené prípady z formulácie kroku 9.

folium. Kruh

Bublinovú mapu vytvoríme pomocou programu folium. Circle () na iteračné pridanie kruhov.

poloha = [potvrdené_df.iloc ['lat'], potvrzené_df.iloc ['dlhé'],

z potvrdeného_df potvrdených prípadov z kroku 5 extrahujeme hodnoty zemepisnej šírky a dĺžky zodpovedajúce údajom o každom mieste/krajine.

polomer = (int ((np.log (potvrdil_df.iloc [i, -1] +1,00001)))+0,2)*50 000,

vytvorenie objektu polomeru na vykreslenie bublinových kruhov na mape sveta naprieč krajinami.

color = 'red', fill_color = 'indigo',

čím je obrys bublinového kruhu červený a vnútorná oblasť ako indigo.

a nakoniec vykreslenie kruhov na mape sveta pomocou objektu popisu.

Krok 16: Výsledok

Výsledok!
Výsledok!
Výsledok!
Výsledok!

Príloha ukazuje:

  1. Zoznam krajín podľa počtu prípadov
  2. Celkový počet prípadov na mape sveta

Odporúča: