Innholdsfortegnelse:

COVID19 Dashboard på verdenskart (ved hjelp av Python): 16 trinn
COVID19 Dashboard på verdenskart (ved hjelp av Python): 16 trinn

Video: COVID19 Dashboard på verdenskart (ved hjelp av Python): 16 trinn

Video: COVID19 Dashboard på verdenskart (ved hjelp av Python): 16 trinn
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, November
Anonim
COVID19 Dashboard på verdenskart (ved hjelp av Python)
COVID19 Dashboard på verdenskart (ved hjelp av Python)

Jeg vet at nesten alle av oss vet mest informasjon om COVID19.

Og dette instruerbare handler om å lage et boblekart, for å plotte sanntidsdata (av saker) på verdenskartet.

For mer bekvemmelighet har jeg lagt til programmet i Github -depotet:

github.com/backshell/COVID19dashboard

Rekvisita

Det kreves ingen rekvisita som sådan, og vi vil gjøre hele dataprogrammet gjennom GoogleColab Notebook. Så en gmail -konto burde være tilstrekkelig til å begynne med.

Colab Notebooks / Colaboratory er et Google -forskningsprosjekt som er opprettet for å spre maskinlæring og forskning. Det er et Jupyter bærbart miljø som ikke krever oppsett å bruke og kjører helt i skyen.

Og INGEN installasjon kreves i maskinen din.

Trinn 1: Forstå backend -prosessen (database)

De fleste av alle programmer henter data fra backend, og den resulterende formateres og publiseres til front-end. Og for dette programmet vil vi kreve virkelige data fra COVID19.

G. W. C. Whiting School of Engineering har publisert COVID19 -statistikken gjennom sin github -konto:

github.com/CSSEGISandData

Fra start til dato publiseres landestatistikken for COVID19 i depotet.

Så vi ville bruke. CSV-formaterte filer av dem (segmentert radvis av land) og plotte dataene på verdenskartet.

Trinn 2: Python -pakker/biblioteker som brukes i programmet

Nedenfor er listen over python -pakker og biblioteker som vi vil bruke. La meg gi en oversikt over formålet med hver av dem.

numpy:

NumPy er et bibliotek for programmeringsspråket Python, og legger til støtte for store, flerdimensjonale matriser og matriser, sammen med en stor samling matematiske funksjoner på høyt nivå for å operere på disse matrisene.

pandaer:

pandas er et programvarebibliotek skrevet for programmeringsspråket Python for datamanipulering og analyse.

matplotlib.pyplot:

pyplot er hovedsakelig beregnet på interaktive tomter og enkle tilfeller av programmatisk tomtgenerering

plotly.express:

Plotly Express er et nytt Python-visualiseringsbibliotek på høyt nivå. Enkel syntaks for komplekse diagrammer.

folium:

folium gjør det enkelt å visualisere data som er manipulert i Python på et interaktivt heftekart.

plotly.graph_objects:

Den plottaktige Python -pakken eksisterer for å lage, manipulere og gjengi grafiske figurer (dvs. diagrammer, plott, kart og diagrammer) representert av datastrukturer også referert til som figurer.

sjøfødt:

Seaborn er et Python datavisualiseringsbibliotek basert på matplotlib. Det gir et grensesnitt på høyt nivå for å tegne attraktiv og informativ statistisk grafikk.

ipywidgets:

ipywidgets er interaktive HTML -widgets for Jupyter bærbare datamaskiner, JupyterLab og IPython -kjernen. Notatbøker blir levende når interaktive widgets brukes.

Det er ikke nødvendig å installere disse pakkene, ettersom vi ville jobbe dette programmet helt i Google Colab Notebook (lar det beholdes som colab i hele denne instruksjonsboken).

Trinn 3: Konfigurere stasjonen din, for å bruke Colab

Konfigurere stasjonen din, for å bruke Colab
Konfigurere stasjonen din, for å bruke Colab
Konfigurere stasjonen din, for å bruke Colab
Konfigurere stasjonen din, for å bruke Colab

Opprett en mappe for notatbøkene dine i Disken din.

Teknisk sett er dette trinnet ikke helt nødvendig hvis du bare vil begynne å jobbe i Colab. Siden Colab jobber utenfor stasjonen din, er det imidlertid ikke en dårlig idé å spesifisere mappen der du vil jobbe. Du kan gjøre det ved å gå til Google Disk og klikke "Ny" og deretter opprette en ny mappe.

Deretter kan du velge å lage colabnotebook her eller begynne å jobbe direkte i colab og koble mappen i stasjonen, som er opprettet for colab -arbeid.

Dette er en god praksis, ellers mer colab vi lager det kan se rotete i vår stasjon.

Trinn 4: Oversikt over programmet

I dette programmet/notatblokken vil vi lage følgende for COVID-19:

  • Liste over land etter antall saker
  • Totalt antall tilfeller på et verdenskart

Trinn 5: COVID-19 Dashboard | Del 1

COVID-19 Dashboard | Del 1
COVID-19 Dashboard | Del 1

Du kan bruke fremtiden til å hjelpe til med å overføre koden din fra Python 2 til Python 3 i dag - og fortsatt ha den kjørt på Python 2.

Hvis du allerede har Python 3 -kode, kan du i stedet bruke fremtiden til å tilby Python 2 -kompatibilitet med nesten ingen ekstra arbeid.

future støtter standard bibliotekreorganisering (PEP 3108) via en av flere mekanismer, slik at de fleste flyttede standardbiblioteksmodulene kan nås under deres Python 3 -navn og steder i Python 2.

Trinn 6: COVID-19 Dashboard | Del 2

COVID-19 Dashboard | Del 2
COVID-19 Dashboard | Del 2

Samhandlingsfunksjonen (ipywidgets.interact) lager automatisk brukergrensesnitt (UI) kontroller for å utforske kode og data interaktivt. Det er den enkleste måten å komme i gang med å bruke IPythons widgets.

Trinn 7: COVID-19 Dashboard | Del 3

COVID-19 Dashboard | Del 3
COVID-19 Dashboard | Del 3

display_html viser HTML -representasjonene til et objekt. Det vil si at den søker etter registrerte visningsmetoder, for eksempel _repr_html_, og kaller dem, og viser eventuelt resultatet.

Trinn 8: COVID-19 Dashboard | Del 4

COVID-19 Dashboard | Del 4
COVID-19 Dashboard | Del 4

Liste over pakker (som forklart i trinn 2) blir importert til programmet.

Trinn 9: COVID-19 Dashboard | Del 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')

Som forklart i trinn 1, leser du dataene som.csv -fil fra depotet.

Trinn 10: COVID-19 Dashboard | Del 6

COVID-19 Dashboard | Del 6
COVID-19 Dashboard | Del 6

Vi vil gi df -kolonnenavn nytt navn til små bokstaver

Trinn 11: COVID-19 Dashboard | Del 7

COVID-19 Dashboard | Del 7
COVID-19 Dashboard | Del 7

Vi skal endre provins/stat til stat og land/region til land

Trinn 12: COVID-19 Dashboard | Del 8

COVID-19 Dashboard | Del 8
COVID-19 Dashboard | Del 8

Vi vil beregne det totale antallet bekreftede, dødsfall og gjenopprettede tilfeller.

Trinn 13: COVID-19 Dashboard | Del 9

COVID-19 Dashboard | Del 9
COVID-19 Dashboard | Del 9
COVID-19 Dashboard | Del 9
COVID-19 Dashboard | Del 9

Vi vil vise den totale statistikken i HTML -format, ettersom vi importerte spesifikke biblioteker i trinn 7 tidligere som nedenfor:

fra IPython.core.display import import, HTML

Trinn 14: Liste over land (Top10) etter antall saker | COVID-19 oversikt

Liste over land (topp 10) etter antall saker | COVID-19 oversikt
Liste over land (topp 10) etter antall saker | COVID-19 oversikt
Liste over land (topp 10) etter antall saker | COVID-19 oversikt
Liste over land (topp 10) etter antall saker | COVID-19 oversikt

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

FigureWidget -funksjonen returnerer et tomt FigureWidget -objekt med standard x- og y -akser. Jupyter interaktive widgets har et layoutattributt som viser en rekke CSS -egenskaper som påvirker hvordan widgets legges ut.

pd. DataFrame

oppretter dataramme ved hjelp av ordbok, med tre farge bakgrunner for den resulterende å fylle ut.

def show_latest_cases (TOP)

sorterer verdiene etter bekreftet synkende rekkefølge.

samhandle (show_latest_cases, TOP = '10 ')

Samhandlingsfunksjonen (ipywidgets.interact) lager automatisk brukergrensesnitt (UI) kontroller for å utforske kode og data interaktivt.

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

oppretter en kantlinje med 2 px bredde linjer med grønn farge, slik at den resulterende kan vises.

Trinn 15: Totalt antall saker på et verdenskart | COVID-19 oversikt

Totalt antall tilfeller på et verdenskart | COVID-19 oversikt
Totalt antall tilfeller på et verdenskart | COVID-19 oversikt
Totalt antall tilfeller på et verdenskart | COVID-19 oversikt
Totalt antall tilfeller på et verdenskart | COVID-19 oversikt

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

Folium er et verktøy som får deg til å ligne en kartlagt Gud mens alt arbeidet er utført i bakenden. Det er en Python -innpakning for et verktøy som kalles leaflet.js. Vi gir den i utgangspunktet minimale instruksjoner, JS gjør mye arbeid i bakgrunnen, og vi får noen veldig, veldig kule kart. Det er flotte ting. For klarhetens skyld kalles kartet teknisk sett et 'Leaflet Map'. Verktøyet som lar deg kalle dem i Python kalles 'Folium'.

Folium gjør det enkelt å visualisere data som er manipulert i Python på et interaktivt Leaflet -kart. Det muliggjør både binding av data til et kart for choropleth -visualiseringer samt passering av Vincent/Vega -visualiseringer som markører på kartet.

for i i området (0, len (confirm_df))

I en for loop vil vi få alle de bekreftede tilfellene fra trinn 9 -formuleringen.

folium. sirkel

Vi lager et boblekart ved å bruke folium. Circle () for å legge til sirkler iterativt.

location = [confirm_df.iloc ['lat'], confirm_df.iloc ['long'], fra bekreftet_df av bekreftede tilfeller fra trinn 5, trekker vi ut breddegrads- og lengdegrader som tilsvarer hver posisjons-/landdata.

radius = (int ((np.log (confirm_df.iloc [i, -1] +1.00001)))+0.2)*50000, lage radiusobjekt for å plotte boblesirkler på verdenskartet over landene.

color = 'red', fill_color = 'indigo', gjør omrisset av boblesirkelen så rødt og det indre området som indigo.

og til slutt plotte sirklene på world_map ved hjelp av verktøytips -objektet.

Trinn 16: Resultatet

Resultatet!
Resultatet!
Resultatet!
Resultatet!

Vedlegg viser:

  1. Liste over land etter antall saker
  2. Totalt antall tilfeller på et verdenskart

Anbefalt: