Obsah:

Hlavní panel COVID19 na mapě světa (pomocí Pythonu): 16 kroků
Hlavní panel COVID19 na mapě světa (pomocí Pythonu): 16 kroků

Video: Hlavní panel COVID19 na mapě světa (pomocí Pythonu): 16 kroků

Video: Hlavní panel COVID19 na mapě světa (pomocí Pythonu): 16 kroků
Video: CS50 2015 - Week 4, continued 2024, Prosinec
Anonim
Hlavní panel COVID19 na mapě světa (pomocí Pythonu)
Hlavní panel COVID19 na mapě světa (pomocí Pythonu)

Vím, že téměř všichni víme většinu informací o COVID19.

A tento instruktáž je o vytvoření bublinové mapy pro vykreslení dat (případů) v reálném čase na mapu světa.

Pro větší pohodlí jsem program přidal do úložiště Github:

github.com/backshell/COVID19dashboard

Zásoby

Nejsou vyžadovány žádné zásoby a celý počítačový program bychom provedli pomocí GoogleColab Notebook. Na začátek by tedy měl stačit účet na Gmailu.

Colab Notebooks / Colaboratory je výzkumný projekt Google vytvořený za účelem šíření vzdělávání a výzkumu v oblasti strojového učení. Je to prostředí notebooku Jupyter, které nevyžaduje žádné nastavení a běží zcela v cloudu.

A ve vašem počítači není nutná žádná instalace.

Krok 1: Porozumění procesu backendu (databáze)

Většina všech softwarových programů načítá data z backendu a výsledek je formátován a publikován na front-end. A pro tento konkrétní program bychom požadovali skutečná data COVID19.

Společnost G. W. C. Whiting School of Engineering zveřejňuje statistiky COVID19 prostřednictvím svého účtu github:

github.com/CSSEGISandData

Od začátku do dnešního dne jsou v úložišti publikovány statistiky země COVID19.

Použili bychom tedy jejich soubory ve formátu. CSV (segmentované podle zemí) a vykreslili data na mapu světa.

Krok 2: Balíčky/knihovny Pythonu použité v Programu

Níže je uveden seznam balíků a knihoven pythonu, které bychom používali. Dovolte mi poskytnout přehled o účelu každého z nich.

numpy:

NumPy je knihovna pro programovací jazyk Python, která přidává podporu pro velká, vícerozměrná pole a matice, spolu s velkou sbírkou matematických funkcí na vysoké úrovni, které na těchto polích fungují.

pandy:

pandas je softwarová knihovna napsaná pro programovací jazyk Python pro manipulaci a analýzu dat.

matplotlib.pyplot:

pyplot je určen hlavně pro interaktivní grafy a jednoduché případy generování programatického grafu

plotly.express:

Plotly Express je nová vizualizační knihovna Pythonu na vysoké úrovni. Jednoduchá syntaxe pro složité grafy.

folium:

folium usnadňuje vizualizaci dat, která byla zpracována v Pythonu, na interaktivní mapě letáků.

plotly.graph_objects:

Plynulý balíček Pythonu existuje k vytváření, manipulaci a vykreslování grafických obrázků (tj. Grafů, grafů, map a diagramů) reprezentovaných datovými strukturami označovanými také jako obrázky.

seaborn:

Seaborn je knihovna vizualizace dat Pythonu založená na matplotlib. Poskytuje rozhraní na vysoké úrovni pro kreslení atraktivní a informativní statistické grafiky.

ipywidgets:

ipywidgets jsou interaktivní HTML widgety pro notebooky Jupyter, JupyterLab a jádro IPython. Notebooky ožívají při používání interaktivních widgetů.

Instalace těchto balíčků není nutná, protože bychom tento program používali zcela v poznámkovém bloku Google Colab (ponecháme jej jako colab v celém tomto pokynu).

Krok 3: Nastavení disku pro používání Colabu

Nastavení disku pro používání Colabu
Nastavení disku pro používání Colabu
Nastavení disku pro používání Colabu
Nastavení disku pro používání Colabu

Na Disku vytvořte složku pro notebooky.

Technicky vzato, tento krok není zcela nezbytný, pokud chcete začít pracovat v Colabu. Jelikož však Colab pracuje na vašem disku, není od věci určit složku, ve které chcete pracovat. Můžete to udělat tak, že přejdete na svůj Disk Google, kliknete na „Nový“a poté vytvoříte novou složku.

Pak se můžete rozhodnout vytvořit colabnotebook zde nebo začít pracovat přímo v colabu a propojit složku na disku, která je vytvořena pro práci s colabem.

Toto je dobrá praxe, jinak může colab, který vytváříme, vypadat na našem disku chaoticky.

Krok 4: Přehled programu

V tomto programu/notebooku bychom pro COVID-19 vytvořili následující:

  • Seznam zemí podle počtu případů
  • Celkový počet případů na mapě světa

Krok 5: Hlavní panel COVID-19 | Část 1

Hlavní panel COVID-19 | Část 1
Hlavní panel COVID-19 | Část 1

Future můžete použít k tomu, abyste dnes přenesli svůj kód z Pythonu 2 do Pythonu 3 - a stále jej nechali běžet na Pythonu 2.

Pokud již máte kód Python 3, můžete místo toho použít future a nabídnout kompatibilitu Pythonu 2 téměř bez práce navíc.

future podporuje standardní reorganizaci knihovny (PEP 3108) prostřednictvím jednoho z několika mechanismů, které umožňují přístup k většině přesunutých modulů standardní knihovny pod jejich názvy a umístěními v Pythonu 3 v Pythonu 2.

Krok 6: Hlavní panel COVID-19 | Část 2

Hlavní panel COVID-19 | Část 2
Hlavní panel COVID-19 | Část 2

Funkce interakce (ipywidgets.interact) automaticky vytváří ovládací prvky uživatelského rozhraní (UI) pro interaktivní zkoumání kódu a dat. Je to nejjednodušší způsob, jak začít používat widgety IPythonu.

Krok 7: Hlavní panel COVID-19 | Část 3

Hlavní panel COVID-19 | Část 3
Hlavní panel COVID-19 | Část 3

display_html zobrazí reprezentace HTML objektu. To znamená, že vyhledá registrované metody zobrazení, například _repr_html_, a zavolá je a zobrazí výsledek, pokud existuje.

Krok 8: Hlavní panel COVID-19 | Část 4

Hlavní panel COVID-19 | Část 4
Hlavní panel COVID-19 | Část 4

Seznam balíků (jak je vysvětleno v kroku 2) se importuje do programu.

Krok 9: Hlavní panel COVID-19 | Část 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')

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

Jak bylo vysvětleno v kroku 1, čtení dat jako souboru CSV z úložiště.

Krok 10: Hlavní panel COVID-19 | Část 6

Hlavní panel COVID-19 | Část 6
Hlavní panel COVID-19 | Část 6

Přejmenujeme názvy sloupců df na malá písmena

Krok 11: Hlavní panel COVID-19 | Část 7

Hlavní panel COVID-19 | Část 7
Hlavní panel COVID-19 | Část 7

Provincii/stát změníme na stát a zemi/oblast na zemi

Krok 12: Hlavní panel COVID-19 | Část 8

Hlavní panel COVID-19 | Část 8
Hlavní panel COVID-19 | Část 8

Vypočítáme celkový počet potvrzených, úmrtí a uzdravených případů.

Krok 13: Hlavní panel COVID-19 | Část 9

Hlavní panel COVID-19 | Část 9
Hlavní panel COVID-19 | Část 9
Hlavní panel COVID-19 | Část 9
Hlavní panel COVID-19 | Část 9

Celkové statistiky zobrazíme ve formátu HTML, protože konkrétní knihovny jsme importovali v kroku 7 dříve, jak je uvedeno níže:

z IPython.core.display zobrazení importu, HTML

Krok 14: Seznam zemí (Top10) podle počtu případů | Hlavní panel COVID-19

Seznam zemí (Top 10) podle počtu případů | Hlavní panel COVID-19
Seznam zemí (Top 10) podle počtu případů | Hlavní panel COVID-19
Seznam zemí (Top 10) podle počtu případů | Hlavní panel COVID-19
Seznam zemí (Top 10) podle počtu případů | Hlavní panel COVID-19

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

Funkce FigureWidget vrací prázdný objekt FigureWidget s výchozími osami x a y. Interaktivní widgety Jupyter mají atribut rozložení, který odhaluje řadu vlastností CSS, které mají vliv na rozvržení widgetů.

pd. DataFrame

vytvoří datový rámec pomocí slovníku se třemi barevnými pozadími, do kterých se má výsledný soubor naplnit.

def show_latest_cases (TOP)

seřadí hodnoty podle potvrzeného sestupného pořadí.

komunikovat (show_latest_cases, TOP = '10 ')

Funkce interakce (ipywidgets.interact) automaticky vytváří ovládací prvky uživatelského rozhraní (UI) pro interaktivní zkoumání kódu a dat.

ipywLayout = widgety. Rozložení (border = 'plná 2px zelená')

vytvoří ohraničení s 2px šířkovými čarami zelené barvy, které se zobrazí jako výsledek.

Krok 15: Celkový počet případů na mapě světa | Hlavní panel COVID-19

Celkový počet případů na mapě světa | Hlavní panel COVID-19
Celkový počet případů na mapě světa | Hlavní panel COVID-19
Celkový počet případů na mapě světa | Hlavní panel COVID-19
Celkový počet případů na mapě světa | Hlavní panel COVID-19

world_map = folium. Map (umístění = [11, 0], tiles = "cartodbpositron", zoom_start = 2, max_zoom = 6, min_zoom = 2)

Folium je nástroj, díky kterému vypadáte jako mapující Bůh, zatímco veškerá práce se provádí na zadním konci. Je to obálka Pythonu pro nástroj nazvaný leaflet.js. V zásadě dáváme minimální instrukce, JS dělá spoustu práce na pozadí a získáváme několik velmi, velmi cool map. Je to skvělá věc. Pro přehlednost se mapa odborně nazývá „letáková mapa“. Nástroj, kterému je v Pythonu můžeme říkat, se nazývá „Folium“.

Folium usnadňuje vizualizaci dat, která byla zpracována v Pythonu, na interaktivní mapě letáků. Umožňuje jak vazbu dat k mapě pro vizualizace choropleth, tak i předávání vizualizací Vincent/Vega jako značek na mapě.

pro i v rozsahu (0, len (potvrzeno_df))

Ve smyčce pro získáme všechny potvrzené případy z formulace kroku 9.

folium. Kruh

Bublinovou mapu vytvoříme pomocí folium. Circle () k iteračnímu přidání kruhů.

umístění = [potvrzeno_df.iloc ['lat'], potvrzeno_df.iloc ['dlouho'], z potvrzeného_df potvrzených případů z kroku 5 extrahujeme hodnoty zeměpisné šířky a délky odpovídající jednotlivým údajům o poloze/zemi.

poloměr = (int ((np.log (potvrzeno_df.iloc [i, -1] +1,00001)))+0,2)*50 000, vytvoření objektu poloměru k vykreslení kruhů bublin na mapě světa napříč zeměmi.

color = 'red', fill_color = 'indigo', obrys bublinového kruhu je červený a vnitřní oblast jako indigo.

a nakonec vykreslení kruhů na mapě světa pomocí objektu popisku.

Krok 16: Výsledek

Výsledek!
Výsledek!
Výsledek!
Výsledek!

Příloha ukazuje:

  1. Seznam zemí podle počtu případů
  2. Celkový počet případů na mapě světa

Doporučuje: