Sisällysluettelo:

COVID19 -hallintapaneeli maailmankartalla (Pythonin avulla): 16 vaihetta
COVID19 -hallintapaneeli maailmankartalla (Pythonin avulla): 16 vaihetta

Video: COVID19 -hallintapaneeli maailmankartalla (Pythonin avulla): 16 vaihetta

Video: COVID19 -hallintapaneeli maailmankartalla (Pythonin avulla): 16 vaihetta
Video: CS50 2013 - Week 10, continued 2024, Joulukuu
Anonim
COVID19 -hallintapaneeli maailmankartalla (Pythonin avulla)
COVID19 -hallintapaneeli maailmankartalla (Pythonin avulla)

Tiedän, että melkein kaikki tiedämme suurimman osan COVID19 -taudista.

Ja tämä opettavainen asia koskee kuplakartan luomista, jotta voidaan piirtää (tapausten) reaaliaikainen data maailmankartalle.

Lisämukavuuden vuoksi olen lisännyt ohjelman Github -arkistoon:

github.com/backshell/COVID19dashboard

Tarvikkeet

Tarvikkeita ei tarvita, ja teemme koko tietokoneohjelman GoogleColab -muistikirjan kautta. Joten gmail -tilin pitäisi riittää aluksi.

Colab Notebooks / Colaboratory on Googlen tutkimushanke, joka on luotu auttamaan koneoppimisen koulutuksen ja tutkimuksen levittämisessä. Se on Jupyter -muistikirjaympäristö, joka ei vaadi asennusta ja toimii täysin pilvessä.

EI asennusta tarvita koneeseesi.

Vaihe 1: Taustaprosessin ymmärtäminen (tietokanta)

Useimmat ohjelmistot hakevat tietoja taustajärjestelmästä ja tuloksena oleva muotoillaan ja julkaistaan käyttöliittymään. Ja tätä ohjelmaa varten tarvitsemme COVID19-todellista dataa.

G. W. C. Whiting School of Engineering on julkaissut COVID19 -tilastoja github -tilinsä kautta:

github.com/CSSEGISandData

Maakohtaiset COVID19 -tilastot julkaistaan alusta asti tähän päivään asti.

Joten käytämme niiden. CSV-muotoisia tiedostoja (segmentoituja riveittäin) ja piirtäisimme tiedot maailmankartalle.

Vaihe 2: Ohjelmassa käytetyt Python -paketit/kirjastot

Alla on luettelo käyttämistämme python -paketeista ja kirjastoista. Annan yleiskatsauksen kunkin niistä tarkoituksesta.

numpy:

NumPy on Python-ohjelmointikielen kirjasto, joka lisää tukea suurille, moniulotteisille matriiseille ja matriiseille sekä suuren joukon korkean tason matemaattisia toimintoja näille matriiseille.

pandat:

pandas on ohjelmistokirjasto, joka on kirjoitettu Python -ohjelmointikielelle tietojen käsittelyä ja analysointia varten.

matplotlib.pyplot:

pyplot on tarkoitettu pääasiassa vuorovaikutteisille kaavioille ja yksinkertaisille ohjelmallisten juonien generointitapauksille

plotly.express:

Plotly Express on uusi korkean tason Python-visualisointikirjasto. Yksinkertainen syntaksi monimutkaisille kaavioille.

folium:

foliumin avulla on helppo visualisoida Pythonissa käsiteltyjä tietoja interaktiivisella lehtiskartalla.

plotly.graph_objects:

Kaavamainen Python -paketti on tarkoitettu luomaan, käsittelemään ja esittämään graafisia lukuja (ts. Kaavioita, kaavioita, karttoja ja kaavioita), joita edustavat tietorakenteet, joita kutsutaan myös kuvioiksi.

merisarvinen:

Seaborn on matplotlibiin perustuva Python -datan visualisointikirjasto. Se tarjoaa korkean tason käyttöliittymän houkuttelevan ja informatiivisen tilastollisen grafiikan piirtämiseen.

ipywidgets:

ipywidgets ovat vuorovaikutteisia HTML -widgettejä Jupyter -muistikirjoille, JupyterLabille ja IPython -ytimelle. Muistikirjat heräävät henkiin, kun interaktiivisia widgettejä käytetään.

Näiden pakettien asentaminen ei ole pakollista, koska toimisimme tämän ohjelman kanssa kokonaan Google Colab -muistikirjassa (säilytetään se colab -muodossa koko tämän ohjeen mukaan).

Vaihe 3: Aseman asentaminen Colabin käyttöön

Asennuksen määrittäminen Colabin käyttöön
Asennuksen määrittäminen Colabin käyttöön
Asennuksen määrittäminen Colabin käyttöön
Asennuksen määrittäminen Colabin käyttöön

Luo Drivessa kansio muistikirjoillesi.

Teknisesti tämä vaihe ei ole täysin välttämätön, jos haluat vain aloittaa työskentelyn Colabissa. Koska Colab työskentelee kuitenkin asemastasi, ei ole huono idea määrittää kansio, jossa haluat työskennellä. Voit tehdä sen siirtymällä Google Driveen ja napsauttamalla "Uusi" ja luomalla sitten uuden kansion.

Sitten voit luoda colabnotebookin täällä tai aloittaa työskentelyn suoraan colabissa ja linkittää kansion Driveen, joka on luotu colab -työtä varten.

Tämä on hyvä käytäntö, muuten luomamme colab voi näyttää sotkuiselta asemassamme.

Vaihe 4: Ohjelman yleiskatsaus

Tässä ohjelmassa/muistikirjassa luomme seuraavat COVID-19-tautia varten:

  • Luettelo maista tapausten määrän mukaan
  • Tapauksia yhteensä maailmankartalla

Vaihe 5: COVID-19-hallintapaneeli | Osa 1

COVID-19-hallintapaneeli | Osa 1
COVID-19-hallintapaneeli | Osa 1

Voit käyttää tulevaisuutta koodin siirtämiseen Python 2: sta Python 3: een tänään - ja silti käyttää sitä Python 2: ssa.

Jos sinulla on jo Python 3 -koodi, voit tulevaisuudessa tarjota Python 2 -yhteensopivuuden lähes ilman ylimääräistä työtä.

tulevaisuus tukee kirjaston tavanomaista uudelleenjärjestelyä (PEP 3108) yhdellä useista mekanismeista, jolloin useimmat siirretyt vakiokirjastomoduulit ovat käytettävissä Python 3 -nimillään ja -paikallaan Python 2: ssa.

Vaihe 6: COVID-19-hallintapaneeli | Osa 2

COVID-19-hallintapaneeli | Osa 2
COVID-19-hallintapaneeli | Osa 2

Vuorovaikutustoiminto (ipywidgets.interact) luo automaattisesti käyttöliittymäohjaimet koodin ja datan vuorovaikutteiseen tutkimiseen. Se on helpoin tapa aloittaa IPython -widgetien käyttö.

Vaihe 7: COVID-19-hallintapaneeli | Osa 3

COVID-19-hallintapaneeli | Osa 3
COVID-19-hallintapaneeli | Osa 3

display_html näyttää objektin HTML -esitykset. Toisin sanoen se etsii rekisteröidyt näyttömenetelmät, kuten _repr_html_, ja kutsuu niitä näyttäen mahdollisen tuloksen.

Vaihe 8: COVID-19-hallintapaneeli | Osa 4

COVID-19-hallintapaneeli | Osa 4
COVID-19-hallintapaneeli | Osa 4

Pakettiluettelo (kuten vaiheessa 2 selitetään) tuodaan ohjelmaan.

Vaihe 9: COVID-19-hallintapaneeli | Osa 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')

vahvistettu_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_conffied_global.csv')

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

Kuten vaiheessa 1 selitettiin, tietojen lukeminen.csv -tiedostona arkistosta.

Vaihe 10: COVID-19-hallintapaneeli | Osa 6

COVID-19-hallintapaneeli | Osa 6
COVID-19-hallintapaneeli | Osa 6

Nimeämme df -sarakkeiden nimet uudelleen pieniksi

Vaihe 11: COVID-19-hallintapaneeli | Osa 7

COVID-19-hallintapaneeli | Osa 7
COVID-19-hallintapaneeli | Osa 7

Muutamme maakunnan/osavaltion osavaltioksi ja maan/alueen maasta toiseen

Vaihe 12: COVID-19-hallintapaneeli | Osa 8

COVID-19-hallintapaneeli | Osa 8
COVID-19-hallintapaneeli | Osa 8

Laskemme vahvistettujen, kuolleiden ja toipuneiden tapausten kokonaismäärän.

Vaihe 13: COVID-19-hallintapaneeli | Osa 9

COVID-19-hallintapaneeli | Osa 9
COVID-19-hallintapaneeli | Osa 9
COVID-19-hallintapaneeli | Osa 9
COVID-19-hallintapaneeli | Osa 9

Näytämme kaikki tilastot HTML -muodossa, koska tuotiin tiettyjä kirjastoja vaiheessa 7 aiemmin seuraavasti:

IPython.core.display -tuontinäytöstä, HTML

Vaihe 14: Luettelo maista (Top10) tapausten lukumäärän mukaan | COVID-19-hallintapaneeli

Maaluettelo (Top10) tapausten lukumäärän mukaan | COVID-19-hallintapaneeli
Maaluettelo (Top10) tapausten lukumäärän mukaan | COVID-19-hallintapaneeli
Maaluettelo (Top10) tapausten lukumäärän mukaan | COVID-19-hallintapaneeli
Maaluettelo (Top10) tapausten lukumäärän mukaan | COVID-19-hallintapaneeli

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

FigureWidget -funktio palauttaa tyhjän FigureWidget -objektin, jolla on oletusarvoiset x- ja y -akselit. Vuorovaikutteisissa Jupyter -widgetteissä on asettelumääritelmä, joka paljastaa useita CSS -ominaisuuksia, jotka vaikuttavat widgetien asetteluun.

pd. DataFrame

luo tietokehyksen sanakirjan avulla, jossa on kolme väritaustaa tulokselle.

def show_latest_cases (TOP)

lajittelee arvot vahvistetun laskevan järjestyksen mukaan.

vuorovaikutus (show_latest_cases, TOP = '10')

Vuorovaikutustoiminto (ipywidgets.interact) luo automaattisesti käyttöliittymäohjaimet koodin ja datan vuorovaikutteiseen tutkimiseen.

ipywLayout = widgets. Layout (reunus = 'kiinteä 2px vihreä')

luo reunuksen, jossa on 2 pikselin leveät vihreät viivat, jotta tulos voidaan näyttää.

Vaihe 15: Tapausten kokonaismäärä maailmankartalla | COVID-19-hallintapaneeli

Tapausten kokonaismäärä maailmankartalla | COVID-19-hallintapaneeli
Tapausten kokonaismäärä maailmankartalla | COVID-19-hallintapaneeli
Tapausten kokonaismäärä maailmankartalla | COVID-19-hallintapaneeli
Tapausten kokonaismäärä maailmankartalla | COVID-19-hallintapaneeli

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

Folium on työkalu, joka saa sinut näyttämään kartoittavalta Jumalalta, kun kaikki työ tehdään takapäässä. Se on Python -kääre työkalulle nimeltä leaflet.js. Annamme periaatteessa minimaaliset ohjeet, JS tekee paljon työtä taustalla ja saamme erittäin hienoja karttoja. Se on hienoa tavaraa. Selvyyden vuoksi kartta on teknisesti nimeltään "Esitekartta". Työkalua, jonka avulla voit kutsua heitä Pythonissa, kutsutaan Foliumiksi.

Foliumin avulla on helppo visualisoida Pythonissa käsiteltyjä tietoja interaktiivisella Leaflet -kartalla. Se mahdollistaa tietojen sitomisen karttaan choropleth -visualisointeja varten sekä Vincent/Vega -visualisointien välittämisen merkkinä kartalla.

i alueella (0, len (vahvistettu_df))

For -silmukassa saamme kaikki vahvistetut tapaukset vaiheen 9 muotoilusta.

ympyrä

Luomme kuplakartan käyttämällä foliumia. Circle () ja lisää iteratiivisesti ympyröitä.

sijainti = [vahvistettu_df.iloc ['lat'], vahvistettu_df.iloc ['pitkä'], poimimme vahvistettujen tapausten vahvistetusta_ddf: stä vaiheesta 5, otamme kutakin sijaintia/maata koskevia tietoja vastaavat leveys- ja pituusasteet.

säde = (int ((np.log (vahvistettu_df.iloc [i, -1] +1.00001)))+0.2)*50000, sädeobjektin luominen kuplapiirien piirtämiseksi maailmankartalle eri maissa.

väri = 'punainen', fill_color = 'indigo', kuplaympyrän ääriviivat punaisiksi ja sisäpinta indigoksi.

ja lopuksi piirretään ympyrät world_map -työkaluun työkaluvihjeobjektin avulla.

Vaihe 16: Tulos

Lopputulos!
Lopputulos!
Lopputulos!
Lopputulos!

Liite näyttää:

  1. Luettelo maista tapausten määrän mukaan
  2. Tapauksia yhteensä maailmankartalla

Suositeltava: