INHOUDSOPGAWE:

COVID19 -dashboard op wêreldkaart (met behulp van Python): 16 stappe
COVID19 -dashboard op wêreldkaart (met behulp van Python): 16 stappe

Video: COVID19 -dashboard op wêreldkaart (met behulp van Python): 16 stappe

Video: COVID19 -dashboard op wêreldkaart (met behulp van Python): 16 stappe
Video: Computational Thinking - Computer Science for Business Leaders 2016 2024, November
Anonim
COVID19 -dashboard op wêreldkaart (met behulp van Python)
COVID19 -dashboard op wêreldkaart (met behulp van Python)

Ek weet dat byna almal van ons die meeste inligting oor COVID19 ken.

En hierdie instruksies gaan oor die skep van 'n borrelkaart om die real-time data (van gevalle) op die wêreldkaart te teken.

Vir meer gemak het ek die program by Github -bewaarplek gevoeg:

github.com/backshell/COVID19dashboard

Voorrade

Daar is geen benodigdhede as sodanig nodig nie, en ons sal die hele rekenaarprogram deur GoogleColab Notebook doen. 'N Gmail -rekening moet dus voldoende wees om mee te begin.

Colab Notebooks / Colaboratory is 'n navorsingsprojek van Google wat ontwerp is om onderwys en navorsing oor masjienleer te versprei. Dit is 'n Jupyter -notaboekomgewing wat nie nodig is om op te stel nie en heeltemal in die wolk loop.

En GEEN installasie is nodig in u masjien nie.

Stap 1: Begrip van die backend -proses (databasis)

Die meeste van elke sagtewareprogramme haal data van die backend af, en die resultaat word geformateer en aan die voorkant gepubliseer. En vir hierdie spesifieke program benodig ons werklike data van COVID19.

Die G. W. C. Whiting School of Engineering het die COVID19 -statistieke deur middel van sy github -rekening gepubliseer:

github.com/CSSEGISandData

Van die begin tot op datum word die COVID19 -landstatistieke in die bewaarplek gepubliseer.

Ons gebruik dus die. CSV-geformateerde lêers daarvan (gesegmenteer in lande) en plaas die data op die wêreldkaart.

Stap 2: Python -pakkette/biblioteke wat in die program gebruik word

Hieronder is die lys met python -pakkette en biblioteke wat ons sou gebruik. Laat ek 'n oorsig gee van die doel van elkeen van hulle.

numpy:

NumPy is 'n biblioteek vir die Python-programmeertaal, wat ondersteuning bied vir groot, multi-dimensionele skikkings en matrikse, tesame met 'n groot versameling wiskundige funksies op hoë vlak om op hierdie skikkings te werk.

pandas:

pandas is 'n sagtewarebiblioteek wat geskryf is vir die Python -programmeertaal vir manipulasie en analise van data.

matplotlib.pyplot:

pyplot is hoofsaaklik bedoel vir interaktiewe erwe en eenvoudige gevalle van programmatiese plotopwekking

plotly.express:

Plotly Express is 'n nuwe Python-visualiseringsbiblioteek op hoë vlak. Eenvoudige sintaksis vir komplekse kaarte.

folium:

folium maak dit maklik om data wat in Python gemanipuleer is, op 'n interaktiewe pamfletkaart te visualiseer.

plotly.graph_objects:

Die plotagtige Python -pakket bestaan om grafiese figure (d.w.s. kaarte, plotte, kaarte en diagramme) voor te stel, te manipuleer en weer te gee, wat verteenwoordig word deur datastrukture waarna ook verwys word as syfers.

see gebore:

Seaborn is 'n Python -data -visualiseringsbiblioteek gebaseer op matplotlib. Dit bied 'n hoëvlak-koppelvlak om aantreklike en insiggewende statistiese grafika te teken.

ipywidgets:

ipywidgets is interaktiewe HTML -widgets vir Jupyter -notaboeke, JupyterLab en die IPython -kern. Notaboeke word lewendig wanneer interaktiewe widgets gebruik word.

Dit is nie nodig om hierdie pakkette te installeer nie, aangesien ons hierdie program heeltemal in Google Colab Notebook sou werk (laat ons dit as 'n kolbe hou gedurende hierdie instruksies).

Stap 3: Stel u skyf op om Colab te gebruik

Stel u rit op om Colab te gebruik
Stel u rit op om Colab te gebruik
Stel u rit op om Colab te gebruik
Stel u rit op om Colab te gebruik

Skep 'n gids vir u notaboeke in u Drive.

Tegnies gesproke is hierdie stap nie heeltemal nodig as u net in Colab wil begin werk nie. Aangesien Colab van u skyf af werk, is dit egter nie 'n slegte idee om die gids te spesifiseer waarin u wil werk nie. U kan dit doen deur na u Google Drive te gaan, op "New" te klik en dan 'n nuwe gids te skep.

Dan kan u kies om 'n kolonnaboek hier te skep of direk in colab te werk en die gids in die skyf te koppel, wat vir colab -werk geskep is.

Dit is 'n goeie praktyk, anders lyk die kolbe wat ons skep, rommelig in ons rit.

Stap 4: Oorsig van die program

In hierdie program/notaboek sou ons die volgende vir COVID-19 skep:

  • Lys van lande volgens die aantal gevalle
  • Totale gevalle op 'n wêreldkaart

Stap 5: COVID-19 Dashboard | Deel 1

COVID-19 Dashboard | Deel 1
COVID-19 Dashboard | Deel 1

U kan toekoms gebruik om u kode vandag van Python 2 na Python 3 te stuur - en dit steeds op Python 2 te laat loop.

As u reeds Python 3 -kode het, kan u eerder Future gebruik om Python 2 -verenigbaarheid aan te bied met byna geen ekstra werk nie.

future ondersteun die standaard biblioteekherorganisasie (PEP 3108) via een van die verskillende meganismes, waardeur die meeste geskuifde standaard biblioteekmodules onder hul Python 3 -name en -lokasies in Python 2 verkry kan word.

Stap 6: COVID-19 Dashboard | Deel 2

COVID-19 Dashboard | Deel 2
COVID-19 Dashboard | Deel 2

Die interaksiefunksie (ipywidgets.interact) skep outomaties bedienerskoppelvlak (UI) kontroles om kode en data interaktief te ondersoek. Dit is die maklikste manier om aan die gang te kom met die widgets van IPython.

Stap 7: COVID-19 Dashboard | Deel 3

COVID-19 Dashboard | Deel 3
COVID-19 Dashboard | Deel 3

display_html vertoon die HTML -voorstellings van 'n voorwerp. Dit wil sê, dit soek geregistreerde vertoonmetodes, soos _repr_html_, en noem dit, met die uitslag, indien enige.

Stap 8: COVID-19 Dashboard | Deel 4

COVID-19 Dashboard | Deel 4
COVID-19 Dashboard | Deel 4

'N Lys pakkette (soos verduidelik in stap 2) word na die program ingevoer.

Stap 9: COVID-19 Dashboard | Deel 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')

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

Soos verduidelik in stap1, lees die data as.csv -lêer uit die bewaarplek.

Stap 10: COVID-19 Dashboard | Deel 6

COVID-19 Dashboard | Deel 6
COVID-19 Dashboard | Deel 6

Ons sal die df -kolomname hernoem na kleinletters

Stap 11: COVID-19 Dashboard | Deel 7

COVID-19 Dashboard | Deel 7
COVID-19 Dashboard | Deel 7

Ons sal die provinsie/staat in staat en land/streek na land verander

Stap 12: COVID-19 Dashboard | Deel 8

COVID-19 Dashboard | Deel 8
COVID-19 Dashboard | Deel 8

Ons sal die totale aantal bevestigde, sterfgevalle en herstelde gevalle bereken.

Stap 13: COVID-19 Dashboard | Deel 9

COVID-19 Dashboard | Deel 9
COVID-19 Dashboard | Deel 9
COVID-19 Dashboard | Deel 9
COVID-19 Dashboard | Deel 9

Ons sal die totale statistieke in HTML -formaat vertoon, aangesien ons vroeër in stap 7 spesifieke biblioteke ingevoer het soos hieronder:

vanaf IPython.core.display invoervertoning, HTML

Stap 14: Lys van lande (Top10) volgens die aantal gevalle | COVID-19 Dashboard

Lys van lande (Top10) volgens die aantal gevalle | COVID-19 Dashboard
Lys van lande (Top10) volgens die aantal gevalle | COVID-19 Dashboard
Lys van lande (Top10) volgens die aantal gevalle | COVID-19 Dashboard
Lys van lande (Top10) volgens die aantal gevalle | COVID-19 Dashboard

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

FigureWidget -funksie gee 'n leë FigureWidget -voorwerp met standaard x- en y -as terug. Interaktiewe Jupyter -widgets het 'n uitlegkenmerk wat 'n aantal CSS -eienskappe blootstel wat 'n invloed het op die uitleg van widgets.

pd. DataFrame

skep dataframe met behulp van woordeboek, met drie kleuragtergronde wat die gevolglike kan invul.

def show_latest_cases (TOP)

sorteer die waardes volgens bevestigde dalende volgorde.

interaksie (show_latest_cases, TOP = '10 ')

Die interaksiefunksie (ipywidgets.interact) skep outomaties bedienerskoppelvlak (UI) kontroles om kode en data interaktief te ondersoek.

ipywLayout = widgets. Layout (border = 'solid 2px green')

skep 'n rand met 2px breedte lyne van groen kleur, sodat die resultaat kan vertoon word.

Stap 15: Totale gevalle op 'n wêreldkaart | COVID-19 Dashboard

Totale gevalle op 'n wêreldkaart | COVID-19 Dashboard
Totale gevalle op 'n wêreldkaart | COVID-19 Dashboard
Totale gevalle op 'n wêreldkaart | COVID-19 Dashboard
Totale gevalle op 'n wêreldkaart | COVID-19 Dashboard

world_map = folium. Map (plek = [11, 0], teëls = "cartodbpositron", zoom_start = 2, max_zoom = 6, min_zoom = 2)

Folium is 'n instrument waarmee u soos 'n karterende God kan lyk terwyl al die werk aan die agterkant gedoen word. Dit is 'n Python -omhulsel vir 'n instrument genaamd leaflet.js. Ons gee dit basies minimale instruksies, JS doen baie werk op die agtergrond en ons kry baie, baie cool kaarte. Dis wonderlike goed. Vir die duidelikheid word die kaart tegnies 'n 'Leaflet Map' genoem. Die instrument waarmee u hulle in Python kan noem, word 'Folium' genoem.

Folium maak dit maklik om data wat in Python gemanipuleer is, op 'n interaktiewe Leaflet -kaart te visualiseer. Dit maak dit moontlik om data te bind aan 'n kaart vir choropleth -visualisasies, sowel as om Vincent/Vega -visualisasies deur te gee as merkers op die kaart.

vir i in die reeks (0, len (bevestigde_df))

In 'n opsomming, kry ons al die bevestigde gevalle uit stap 9 -formulering.

folium. Sirkel

Ons skep 'n borrelkaart deur folium. Circle () te gebruik om dit iteratief sirkels by te voeg.

plek = [bevestigde_df.iloc ['lat'], bevestigde_df.iloc ['lang'], uit die bevestigde_df van bevestigde gevalle uit stap5, haal ons die breedte- en lengtegraadwaardes wat ooreenstem met elke ligging/landdata ooreen.

radius = (int ((np.log (confirm_df.iloc [i, -1] +1.00001)))+0.2)*50000, skep 'n radiusvoorwerp om die borrelsirkels op die wêreldkaart oor die lande te teken.

color = 'rooi', fill_color = 'indigo', maak die buitelyn van die borrelsirkel so rooi en die binneste gedeelte as indigo.

en uiteindelik die sirkels op die wêreldkaart met behulp van die tooltip -voorwerp.

Stap 16: Die resultaat

Die resultaat!
Die resultaat!
Die resultaat!
Die resultaat!

Bylae toon:

  1. Lys van lande volgens die aantal gevalle
  2. Totale gevalle op 'n wêreldkaart

Aanbeveel: