Satura rādītājs:

COVID19 informācijas panelis pasaules kartē (izmantojot Python): 16 soļi
COVID19 informācijas panelis pasaules kartē (izmantojot Python): 16 soļi

Video: COVID19 informācijas panelis pasaules kartē (izmantojot Python): 16 soļi

Video: COVID19 informācijas panelis pasaules kartē (izmantojot Python): 16 soļi
Video: Coronavirus Q&A for the Dysautonomia Community 2024, Novembris
Anonim
COVID19 informācijas panelis pasaules kartē (izmantojot Python)
COVID19 informācijas panelis pasaules kartē (izmantojot Python)

Es zinu, ka gandrīz visi no mums zina lielāko daļu informācijas par COVID19.

Un šis pamācības mērķis ir izveidot burbuļu karti, lai attēlotu reāllaika datus (gadījumus) pasaules kartē.

Ērtības labad esmu pievienojis programmu Github krātuvei:

github.com/backshell/COVID19dashboard

Piegādes

Nav nepieciešami nekādi materiāli, un mēs visu datorprogrammu veiktu, izmantojot GoogleColab piezīmjdatoru. Tātad, lai sāktu, pietiek ar gmail kontu.

Colab Notebooks / Colaboratory ir Google pētniecības projekts, kas izveidots, lai palīdzētu izplatīt mašīnmācīšanās izglītību un pētījumus. Tā ir Jupyter piezīmjdatoru vide, kuras lietošana nav nepieciešama, un tā darbojas pilnībā mākonī.

Un jūsu mašīnā nav nepieciešama instalēšana.

1. darbība. Izpratne par aizmugures procesu (datu bāze)

Lielākā daļa no visām programmatūras programmām iegūst datus no aizmugures, un rezultāts tiek formatēts un publicēts priekšgalā. Un šai konkrētajai programmai mums būtu nepieciešami reāli COVID19 dati.

G. W. C. Vitinga Inženierzinātņu skola publicē COVID19 statistiku, izmantojot savu github kontu:

github.com/CSSEGISandData

No sākuma līdz datumam repozitorijā tiek publicēta COVID19 statistika par valstīm.

Tāpēc mēs izmantosim to. CSV formatētos failus (sadalīti pa valstīm) un attēlojam datus pasaules kartē.

2. darbība. Programmā izmantotās Python pakotnes/bibliotēkas

Zemāk ir saraksts ar python pakotnēm un bibliotēkām, kuras mēs izmantosim. Ļaujiet man sniegt pārskatu par katra no tiem mērķi.

numpy:

NumPy ir Python programmēšanas valodas bibliotēka, kas atbalsta lielus, daudzdimensiju masīvus un matricas, kā arī lielu augsta līmeņa matemātisko funkciju kolekciju, lai darbotos šajos masīvos.

pandas:

pandas ir programmatūras bibliotēka, kas paredzēta programmēšanas valodai Python datu apstrādei un analīzei.

matplotlib.pyplot:

pyplot galvenokārt ir paredzēts interaktīviem sižetiem un vienkāršiem programmatiskas sižeta ģenerēšanas gadījumiem

plotly.express:

Plotly Express ir jauna augsta līmeņa Python vizualizācijas bibliotēka. Vienkārša sintakse sarežģītām diagrammām.

folijs:

Folium ļauj interaktīvā brošūru kartē viegli vizualizēt Python apstrādātos datus.

plotly.graph_objects:

Īstais Python pakotne pastāv, lai izveidotu, manipulētu un atveidotu grafiskus skaitļus (t.i., diagrammas, grafikus, kartes un diagrammas), ko attēlo datu struktūras, kuras dēvē arī par skaitļiem.

jūras rags:

Seaborn ir Python datu vizualizācijas bibliotēka, kuras pamatā ir matplotlib. Tas nodrošina augsta līmeņa saskarni pievilcīgas un informatīvas statistikas grafikas zīmēšanai.

ipywidgets:

ipywidgets ir interaktīvi HTML logrīki Jupyter piezīmjdatoriem, JupyterLab un IPython kodolam. Piezīmju grāmatiņas atdzīvojas, kad tiek izmantoti interaktīvie logrīki.

Šo pakotņu instalēšana nav nepieciešama, jo mēs pilnībā strādāsim ar šo programmu Google Colab piezīmjdatorā (ļaujim to saglabāt kā colab visā šajā instrukcijā).

3. darbība. Diska iestatīšana, lai izmantotu Colab

Diska iestatīšana, lai izmantotu Colab
Diska iestatīšana, lai izmantotu Colab
Diska iestatīšana, lai izmantotu Colab
Diska iestatīšana, lai izmantotu Colab

Diskā izveidojiet mapi piezīmju grāmatiņām.

Tehniski runājot, šis solis nav pilnīgi nepieciešams, ja vēlaties tikai sākt strādāt Colab. Tomēr, tā kā Colab strādā no jūsu diska, nav slikta ideja norādīt mapi, kurā vēlaties strādāt. To var izdarīt, dodoties uz savu Google disku un noklikšķinot uz “Jauns” un pēc tam izveidojot jaunu mapi.

Tad jūs varat izvēlēties šeit izveidot colabnotebook vai sākt tieši strādāt colab un saistīt mapi diskā, kas ir izveidota colab darbam.

Šī ir laba prakse, pretējā gadījumā mūsu izveidotā kolabūra mūsu diskā var izskatīties nekārtīga.

4. solis: programmas pārskats

Šajā programmā/piezīmjdatorā mēs izveidosim COVID-19:

  • Valstu saraksts pēc lietu skaita
  • Kopējais gadījumu skaits pasaules kartē

5. darbība: COVID-19 informācijas panelis | 1. daļa

COVID-19 informācijas panelis | 1. daļa
COVID-19 informācijas panelis | 1. daļa

Jūs varat izmantot nākotni, lai palīdzētu pārnest savu kodu no Python 2 uz Python 3 jau šodien - un joprojām to palaist Python 2.

Ja jums jau ir Python 3 kods, varat izmantot nākotni, lai piedāvātu Python 2 saderību gandrīz bez papildu darba.

Nākotne atbalsta standarta bibliotēkas reorganizāciju (PEP 3108), izmantojot vienu no vairākiem mehānismiem, ļaujot lielākajai daļai pārvietoto standarta bibliotēkas moduļu piekļūt ar to Python 3 nosaukumiem un atrašanās vietām Python 2.

6. darbība: COVID-19 informācijas panelis | 2. daļa

COVID-19 informācijas panelis | 2. daļa
COVID-19 informācijas panelis | 2. daļa

Mijiedarbības funkcija (ipywidgets.interact) automātiski izveido lietotāja interfeisa (UI) vadīklas koda un datu interaktīvai izpētei. Tas ir vienkāršākais veids, kā sākt lietot IPython logrīkus.

7. darbība: COVID-19 informācijas panelis | 3. daļa

COVID-19 informācijas panelis | 3. daļa
COVID-19 informācijas panelis | 3. daļa

display_html parāda objekta HTML attēlojumus. Tas nozīmē, ka tas meklē reģistrētās attēlošanas metodes, piemēram, _repr_html_, un izsauc tās, parādot rezultātu, ja tāds ir.

8. darbība: COVID-19 informācijas panelis | 4. daļa

COVID-19 informācijas panelis | 4. daļa
COVID-19 informācijas panelis | 4. daļa

Pakotņu saraksts (kā paskaidrots 2. solī) tiek importēts programmā.

9. darbība. Covid-19 informācijas panelis | 5. daļa

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

apstiprināts_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirm_global.csv')

atgūti_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')

Kā paskaidrots 1. darbībā, no krātuves datus nolasot kā.csv failu.

10. darbība: COVID-19 informācijas panelis | 6. daļa

COVID-19 informācijas panelis | 6. daļa
COVID-19 informācijas panelis | 6. daļa

Mēs pārdēvēsim df kolonnu nosaukumus par mazajiem burtiem

11. darbība. Covid-19 informācijas panelis | 7. daļa

COVID-19 informācijas panelis | 7. daļa
COVID-19 informācijas panelis | 7. daļa

Mēs mainīsim provinci/valsti uz valsti un valsti/reģionu uz valsti

12. darbība: COVID-19 informācijas panelis | 8. daļa

COVID-19 informācijas panelis | 8. daļa
COVID-19 informācijas panelis | 8. daļa

Mēs aprēķināsim kopējo apstiprināto, nāves un atveseļošanās gadījumu skaitu.

13. darbība. Covid-19 informācijas panelis | 9. daļa

COVID-19 informācijas panelis | 9. daļa
COVID-19 informācijas panelis | 9. daļa
COVID-19 informācijas panelis | 9. daļa
COVID-19 informācijas panelis | 9. daļa

Kopējo statistiku mēs parādīsim HTML formātā, jo iepriekš 7. darbībā importējām konkrētas bibliotēkas, kā norādīts tālāk.

no IPython.core.display importēšanas displeja, HTML

14. darbība. Valstu saraksts (Top10) pēc lietu skaita | COVID-19 informācijas panelis

Valstu saraksts (Top10) pēc lietu skaita | COVID-19 informācijas panelis
Valstu saraksts (Top10) pēc lietu skaita | COVID-19 informācijas panelis
Valstu saraksts (Top10) pēc lietu skaita | COVID-19 informācijas panelis
Valstu saraksts (Top10) pēc lietu skaita | COVID-19 informācijas panelis

fig = go. FigureWidget (izkārtojums = go. Layout ())

Funkcija FigureWidget atgriež tukšu FigureWidget objektu ar noklusējuma x un y asīm. Jupyter interaktīvajiem logrīkiem ir izkārtojuma atribūts, kas atklāj vairākus CSS rekvizītus, kas ietekmē logrīku izkārtojumu.

pd. DataFrame

izveido datu rāmi, izmantojot vārdnīcu, ar trīs krāsu fonu, lai rezultāts tiktu aizpildīts.

def show_latest_cases (TOP)

sakārto vērtības pēc apstiprinātas dilstošas secības.

mijiedarboties (show_latest_cases, TOP = '10')

Mijiedarbības funkcija (ipywidgets.interact) automātiski izveido lietotāja interfeisa (UI) vadīklas koda un datu interaktīvai izpētei.

ipywLayout = widgets. Layout (robeža = 'stabila 2 pikseļu zaļa')

izveido apmali ar 2 pikseļu platām zaļas krāsas līnijām, lai rezultāts tiktu parādīts.

15. darbība. Kopējais gadījumu skaits pasaules kartē | COVID-19 informācijas panelis

Kopējais gadījumu skaits pasaules kartē | COVID-19 informācijas panelis
Kopējais gadījumu skaits pasaules kartē | COVID-19 informācijas panelis
Kopējais gadījumu skaits pasaules kartē | COVID-19 informācijas panelis
Kopējais gadījumu skaits pasaules kartē | COVID-19 informācijas panelis

world_map = folium. Map (atrašanās vieta = [11, 0], flīzes = "cartodbpositron", zoom_start = 2, max_zoom = 6, min_zoom = 2)

Folium ir rīks, kas liek jums izskatīties kā kartēšanas Dievam, kamēr viss darbs tiek veikts aizmugurē. Tas ir Python iesaiņojums rīkam, ko sauc par leaflet.js. Mēs būtībā sniedzam minimālus norādījumus, JS fonā veic lielu darbu, un mēs iegūstam ļoti, ļoti foršas kartes. Tā ir lieliska lieta. Skaidrības labad karte tehniski tiek saukta par “Leaflet Map”. Rīku, ko jūs sauksit Python, sauc par “Folium”.

Folium atvieglo Python apstrādāto datu vizualizāciju interaktīvā brošūru kartē. Tas ļauj gan saistīt datus ar karti, lai veiktu korporatīvas vizualizācijas, gan nodot Vincenta/Vega vizualizācijas kā marķierus kartē.

i diapazonā (0, len (apstiprināts_df))

For for ciklā mēs iegūsim visus apstiprinātos gadījumus no 9. darbības formulēšanas.

folijs. Aplis

Mēs izveidojam burbuļu karti, izmantojot foliju. Aplis (), lai iteratīvi pievienotu apļus.

atrašanās vieta = [apstiprināts_df.iloc ['lat'], apstiprināts_df.iloc ['garš'], no apstiprināto gadījumu apstiprināto_dokumenta no 5. soļa mēs iegūstam platuma un garuma vērtības, kas atbilst katras atrašanās vietas/valsts datiem.

rādiuss = (int ((np.log (apstiprināts_df.iloc [i, -1] +1.00001)))+0.2)*50000, izveidojot rādiusa objektu, lai attēlotu burbuļu apļus pasaules kartē dažādās valstīs.

krāsa = 'sarkana', fill_color = 'indigo', padarot burbuļa apļa kontūru sarkanu un iekšējo zonu kā indigo.

un visbeidzot, uzzīmējot apļus world_map, izmantojot rīka padoma objektu.

16. solis: rezultāts

Rezultāts!
Rezultāts!
Rezultāts!
Rezultāts!

Pielikumā redzams:

  1. Valstu saraksts pēc lietu skaita
  2. Kopējais gadījumu skaits pasaules kartē

Ieteicams: