Indholdsfortegnelse:

COVID19 Dashboard på verdenskort (ved hjælp af Python): 16 trin
COVID19 Dashboard på verdenskort (ved hjælp af Python): 16 trin

Video: COVID19 Dashboard på verdenskort (ved hjælp af Python): 16 trin

Video: COVID19 Dashboard på verdenskort (ved hjælp af Python): 16 trin
Video: Zero to Hero ControlNet Tutorial: Stable Diffusion Web UI Extension | Complete Feature Guide 2024, November
Anonim
COVID19 Dashboard på verdenskort (ved hjælp af Python)
COVID19 Dashboard på verdenskort (ved hjælp af Python)

Jeg ved, at næsten vi alle kender de fleste oplysninger om COVID19.

Og dette instruerbare handler om at oprette et boblekort for at plotte data i realtid (af sager) på verdenskortet.

For mere bekvemmelighed har jeg tilføjet programmet til Github -depot:

github.com/backshell/COVID19dashboard

Forbrugsvarer

Der kræves ingen forbrugsvarer som sådan, og vi ville lave hele computerprogrammet via GoogleColab Notebook. Så en gmail -konto burde være tilstrækkelig til at starte med.

Colab Notebooks / Colaboratory er et Google -forskningsprojekt, der er skabt til at hjælpe med at formidle uddannelse og forskning i maskinlæring. Det er et Jupyter notebook -miljø, der ikke kræver nogen opsætning at bruge og kører helt i skyen.

Og INGEN installation kræves i din maskine.

Trin 1: Forståelse af backend -processen (database)

De fleste af alle softwareprogrammer henter data fra backend, og den resulterende formateres og udgives til front-end. Og for dette særlige program ville vi kræve COVID19-reelle data.

G. W. C. Whiting School of Engineering har offentliggjort COVID19 -statistikkerne via sin github -konto:

github.com/CSSEGISandData

Fra start til dato offentliggøres COVID19 -landestatistikkerne i depotet.

Så vi ville bruge. CSV-formaterede filer af dem (segmenteret rækkevis efter lande) og plotte dataene på verdenskortet.

Trin 2: Python -pakker/biblioteker, der bruges i programmet

Nedenfor er listen over pythonpakker og biblioteker, som vi ville bruge. Lad mig give et overblik over formålet med hver af dem.

numpy:

NumPy er et bibliotek til programmeringssproget Python, der tilføjer understøttelse af store, multidimensionale arrays og matricer, sammen med en stor samling af matematiske funktioner på højt niveau til at operere på disse arrays.

pandaer:

pandas er et softwarebibliotek skrevet til Python -programmeringssprog til datamanipulation og analyse.

matplotlib.pyplot:

pyplot er hovedsageligt beregnet til interaktive plots og simple tilfælde af programmatisk plotgenerering

plotly.express:

Plotly Express er et nyt Python-visualiseringsbibliotek på højt niveau. Enkel syntaks for komplekse diagrammer.

folium:

folium gør det let at visualisere data, der er blevet manipuleret i Python på et interaktivt folderkort.

plotly.graph_objects:

Den plottede Python -pakke eksisterer for at oprette, manipulere og gengive grafiske figurer (dvs. diagrammer, plots, kort og diagrammer) repræsenteret af datastrukturer, der også kaldes figurer.

søfødt:

Seaborn er et Python -datavisualiseringsbibliotek baseret på matplotlib. Det giver en grænseflade på højt niveau til at tegne attraktiv og informativ statistisk grafik.

ipywidgets:

ipywidgets er interaktive HTML -widgets til Jupyter -notebooks, JupyterLab og IPython -kernen. Notebooks bliver levende, når der bruges interaktive widgets.

Det er ikke påkrævet at installere disse pakker, da vi ville arbejde med dette program udelukkende i Google Colab Notebook (lader det forblive som colab i hele dette instruerbare).

Trin 3: Opsætning af dit drev til brug af Colab

Opsætning af dit drev til brug af Colab
Opsætning af dit drev til brug af Colab
Opsætning af dit drev til brug af Colab
Opsætning af dit drev til brug af Colab

Opret en mappe til dine notesbøger i dit drev.

Teknisk set er dette trin ikke helt nødvendigt, hvis du bare vil begynde at arbejde i Colab. Da Colab arbejder ud af dit drev, er det imidlertid ikke en dårlig idé at angive den mappe, hvor du vil arbejde. Du kan gøre det ved at gå til dit Google Drev og klikke på "Ny" og derefter oprette en ny mappe.

Så kan du vælge at oprette colabnotebook her eller begynde at arbejde direkte arbejde i colab og linke mappen i drevet, som er oprettet til colab -arbejde.

Dette er en god praksis, ellers mere colab vi opretter det kan se rodet i vores drev.

Trin 4: Oversigt over programmet

I dette program/notesbog ville vi oprette følgende til COVID-19:

  • Liste over lande efter antal sager
  • Sager i alt på et verdenskort

Trin 5: COVID-19 Dashboard | Del 1

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

Du kan bruge fremtiden til at hjælpe med at overføre din kode fra Python 2 til Python 3 i dag - og stadig have den kørt på Python 2.

Hvis du allerede har Python 3 -kode, kan du i stedet bruge fremtiden til at tilbyde Python 2 -kompatibilitet med næsten ingen ekstra arbejde.

fremtid understøtter standard bibliotekreorganisering (PEP 3108) via en af flere mekanismer, der gør det muligt at få adgang til de fleste flyttede standardbiblioteksmoduler under deres Python 3 -navne og lokationer i Python 2.

Trin 6: COVID-19 Dashboard | Del 2

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

Interaktionsfunktionen (ipywidgets.interact) opretter automatisk brugergrænseflade (UI) kontrolelementer til at udforske kode og data interaktivt. Det er den nemmeste måde at komme i gang med at bruge IPythons widgets.

Trin 7: COVID-19 Dashboard | Del 3

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

display_html viser HTML -repræsentationerne af et objekt. Det vil sige, at den søger efter registrerede visningsmetoder, f.eks. _Repr_html_, og kalder dem, og viser eventuelt resultatet.

Trin 8: COVID-19 Dashboard | Del 4

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

Liste over pakker (som forklaret i trin 2) importeres til programmet.

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

recoveryed_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 forklaret i trin1 læser dataene som.csv -fil fra depotet.

Trin 10: COVID-19 Dashboard | Del 6

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

Vi vil omdøbe df -kolonnenavne til små bogstaver

Trin 11: COVID-19 Dashboard | Del 7

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

Vi ændrer provins/stat til stat og land/region til land

Trin 12: COVID-19 Dashboard | Del 8

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

Vi vil beregne det samlede antal bekræftede, dødsfald og genoprettede tilfælde.

Trin 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 viser den samlede statistik i HTML -format, da vi importerede specifikke biblioteker i trin 7 tidligere som nedenfor:

fra IPython.core.display import display, HTML

Trin 14: Liste over lande (Top10) efter antal sager | COVID-19 Dashboard

Liste over lande (Top10) efter antal sager | COVID-19 Dashboard
Liste over lande (Top10) efter antal sager | COVID-19 Dashboard
Liste over lande (Top10) efter antal sager | COVID-19 Dashboard
Liste over lande (Top10) efter antal sager | COVID-19 Dashboard

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

FigureWidget -funktionen returnerer et tomt FigureWidget -objekt med standard x- og y -akser. Jupyter interaktive widgets har en layoutattribut, der viser en række CSS -egenskaber, der påvirker, hvordan widgets er udlagt.

pd. DataFrame

opretter dataramme ved hjælp af ordbog med tre farvebaggrunde, som den resulterende skal udfylde.

def show_latest_cases (TOP)

sorterer værdierne efter bekræftet faldende rækkefølge.

interagere (show_latest_cases, TOP = '10 ')

Interaktionsfunktionen (ipywidgets.interact) opretter automatisk brugergrænsefladekontroller (UI) til at udforske kode og data interaktivt.

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

opretter en kant med 2px bredde linjer med grøn farve, så den resulterende kan vises.

Trin 15: Samlede sager på et verdenskort | COVID-19 Dashboard

Sager i alt på et verdenskort | COVID-19 Dashboard
Sager i alt på et verdenskort | COVID-19 Dashboard
Sager i alt på et verdenskort | COVID-19 Dashboard
Sager i alt på et verdenskort | COVID-19 Dashboard

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

Folium er et værktøj, der får dig til at ligne en kortlægningsgud, mens alt arbejdet udføres i bagenden. Det er en Python -indpakning til et værktøj kaldet leaflet.js. Vi giver det i princippet minimale instruktioner, JS laver masser af arbejde i baggrunden, og vi får nogle meget, meget fede kort. Det er flotte ting. For klarhedens skyld kaldes kortet teknisk set et 'Leaflet Map'. Værktøjet, som lader dig kalde dem i Python, kaldes 'Folium'.

Folium gør det let at visualisere data, der er blevet manipuleret i Python på et interaktivt Leaflet -kort. Det muliggør både binding af data til et kort til choropleth -visualiseringer samt videregivelse af Vincent/Vega -visualiseringer som markører på kortet.

for i i området (0, len (bekræftet_df))

I en for loop vil vi få alle de bekræftede tilfælde fra trin 9 -formuleringen.

folium. Cirkel

Vi opretter et boblekort ved at bruge folium. Circle () til iterativt at tilføje cirkler.

location = [confirm_df.iloc ['lat'], confirm_df.iloc ['long'], fra den bekræftede_df af bekræftede tilfælde fra trin5, udtrækker vi bredde- og længdegrader, der svarer til hver lokalitets-/landedata.

radius = (int ((np.log (confirm_df.iloc [i, -1] +1.00001)))+0.2)*50000, skabe radiusobjekt for at plotte boblecirklerne på verdenskortet på tværs af landene.

color = 'rød', fill_color = 'indigo', gør omridset af boblecirklen så rødt og det indre område som indigo.

og til sidst plotte cirklerne på world_map ved hjælp af værktøjstip -objektet.

Trin 16: Resultatet

Resultatet!
Resultatet!
Resultatet!
Resultatet!

Vedhæftet fil viser:

  1. Liste over lande efter antal sager
  2. Sager i alt på et verdenskort

Anbefalede: