Inhoudsopgave:

COVID19-dashboard op wereldkaart (met Python): 16 stappen
COVID19-dashboard op wereldkaart (met Python): 16 stappen

Video: COVID19-dashboard op wereldkaart (met Python): 16 stappen

Video: COVID19-dashboard op wereldkaart (met Python): 16 stappen
Video: Longfonds Webinar 'De gevolgen van COVID-19 voor mensen met een longziekte' door Frits Franssen 2024, November
Anonim
COVID19-dashboard op wereldkaart (met Python)
COVID19-dashboard op wereldkaart (met Python)

Ik weet dat bijna iedereen van ons de meeste informatie over COVID19 weet.

En deze instructable gaat over het maken van een bellenkaart, om de realtime gegevens (van gevallen) op de wereldkaart te plotten.

Voor meer gemak heb ik het programma toegevoegd aan de Github-repository:

github.com/backshell/COVID19dashboard

Benodigdheden

Er zijn geen benodigdheden als zodanig nodig en we zouden het hele computerprogramma via GoogleColab Notebook doen. Dus een gmail-account zou voldoende moeten zijn om mee te beginnen.

Colab Notebooks / Colaboratory is een onderzoeksproject van Google dat is opgezet om onderwijs en onderzoek op het gebied van machine learning te verspreiden. Het is een Jupyter-notebookomgeving die geen installatie vereist en volledig in de cloud draait.

En GEEN installatie vereist in uw machine.

Stap 1: Het backend-proces (database) begrijpen

De meeste van alle softwareprogramma's halen gegevens op van de backend en het resultaat wordt geformatteerd en gepubliceerd naar de front-end. En voor dit specifieke programma hebben we echte COVID19-gegevens nodig.

De G. W. C. Whiting School of Engineering heeft de COVID19-statistieken gepubliceerd via haar github-account:

github.com/CSSEGISandData

Vanaf de start tot datum worden de landelijke statistieken van COVID19 gepubliceerd in de repository.

Dus we zouden de. CSV-geformatteerde bestanden ervan gebruiken (gesegmenteerd per land) en de gegevens op de wereldkaart plotten.

Stap 2: Python-pakketten/bibliotheken die in het programma worden gebruikt

Hieronder vindt u de lijst met python-pakketten en -bibliotheken die we zouden gebruiken. Laat me een overzicht geven van het doel van elk van hen.

numpy:

NumPy is een bibliotheek voor de programmeertaal Python, die ondersteuning toevoegt voor grote, multidimensionale arrays en matrices, samen met een grote verzameling wiskundige functies op hoog niveau om op deze arrays te werken.

panda's:

pandas is een softwarebibliotheek die is geschreven voor de programmeertaal Python voor gegevensmanipulatie en -analyse.

matplotlib.pyplot:

pyplot is voornamelijk bedoeld voor interactieve plots en eenvoudige gevallen van programmatische plotgeneratie

plotly.express:

Plotly Express is een nieuwe Python-visualisatiebibliotheek op hoog niveau. Eenvoudige syntaxis voor complexe grafieken.

folium:

folium maakt het gemakkelijk om gegevens die in Python zijn gemanipuleerd te visualiseren op een interactieve folderkaart.

plotly.graph_objects:

Het plotly Python-pakket bestaat om grafische figuren (d.w.z. grafieken, plots, kaarten en diagrammen) te maken, te manipuleren en weer te geven die worden weergegeven door gegevensstructuren, ook wel figuren genoemd.

zeegeboren:

Seaborn is een Python-datavisualisatiebibliotheek op basis van matplotlib. Het biedt een interface op hoog niveau voor het tekenen van aantrekkelijke en informatieve statistische grafieken.

ipywidgets:

ipywidgets zijn interactieve HTML-widgets voor Jupyter-notebooks, JupyterLab en de IPython-kernel. Notebooks komen tot leven wanneer interactieve widgets worden gebruikt.

Het installeren van deze pakketten is niet vereist, omdat we dit programma volledig in Google Colab Notebook zouden werken (laten we het in deze instructable als colab houden).

Stap 3: Uw schijf instellen om Colab te gebruiken

Uw schijf instellen om Colab te gebruiken
Uw schijf instellen om Colab te gebruiken
Uw schijf instellen om Colab te gebruiken
Uw schijf instellen om Colab te gebruiken

Maak in uw Drive een map voor uw notitieblokken.

Technisch gezien is deze stap niet helemaal nodig als je gewoon in Colab wilt gaan werken. Aangezien Colab echter vanaf uw schijf werkt, is het geen slecht idee om de map op te geven waarin u wilt werken. U kunt dat doen door naar uw Google Drive te gaan en op "Nieuw" te klikken en vervolgens een nieuwe map te maken.

Dan kunt u ervoor kiezen om hier een colabnotebook aan te maken of direct in colab te gaan werken en de map in drive te koppelen, die voor colab-werk is gemaakt.

Dit is een goede gewoonte, anders kan de colab die we maken er rommelig uitzien in onze drive.

Stap 4: Overzicht van het programma

In dit programma/notebook zouden we het volgende maken voor COVID-19:

  • Lijst van landen op basis van het aantal gevallen
  • Totaal aantal gevallen op een wereldkaart

Stap 5: COVID-19-dashboard | Deel 1

COVID-19-dashboard | Deel 1
COVID-19-dashboard | Deel 1

Je kunt future gebruiken om je code vandaag over te dragen van Python 2 naar Python 3 - en het nog steeds op Python 2 te laten draaien.

Als je al Python 3-code hebt, kun je in plaats daarvan future gebruiken om Python 2-compatibiliteit te bieden met bijna geen extra werk.

future ondersteunt de reorganisatie van de standaardbibliotheek (PEP 3108) via een van de verschillende mechanismen, waardoor de meeste verplaatste standaardbibliotheekmodules toegankelijk zijn onder hun Python 3-namen en -locaties in Python 2.

Stap 6: COVID-19-dashboard | Deel 2

COVID-19-dashboard | Deel 2
COVID-19-dashboard | Deel 2

De interactiefunctie (ipywidgets.interact) creëert automatisch gebruikersinterface (UI)-besturingselementen voor het interactief verkennen van code en gegevens. Het is de gemakkelijkste manier om aan de slag te gaan met de widgets van IPython.

Stap 7: COVID-19-dashboard | Deel 3

COVID-19-dashboard | Deel 3
COVID-19-dashboard | Deel 3

display_html geeft de HTML-representaties van een object weer. Dat wil zeggen, het zoekt geregistreerde weergavemethoden op, zoals _repr_html_, en roept ze aan, waarbij het eventuele resultaat wordt weergegeven.

Stap 8: COVID-19-dashboard | Deel 4

COVID-19-dashboard | Deel 4
COVID-19-dashboard | Deel 4

Lijst met pakketten (zoals uitgelegd in stap 2) wordt geïmporteerd in het programma.

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

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

Zoals uitgelegd in stap 1, het lezen van de gegevens als.csv-bestand uit de repository.

Stap 10: COVID-19-dashboard | Deel 6

COVID-19-dashboard | Deel 6
COVID-19-dashboard | Deel 6

We zullen de df-kolomnamen hernoemen naar kleine letters

Stap 11: COVID-19-dashboard | Deel 7

COVID-19-dashboard | Deel 7
COVID-19-dashboard | Deel 7

We zullen de provincie/staat veranderen in staat en land/regio in land

Stap 12: COVID-19-dashboard | Deel 8

COVID-19-dashboard | Deel 8
COVID-19-dashboard | Deel 8

We berekenen het totale aantal bevestigde, overleden en herstelde gevallen.

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

We zullen de totale statistieken weergeven in HTML-indeling, zoals we eerder in stap 7 specifieke bibliotheken hebben geïmporteerd, zoals hieronder:

van IPython.core.display import display, HTML

Stap 14: Lijst van landen (Top10) op basis van het aantal gevallen | COVID-19-dashboard

Lijst van landen (Top10) op basis van het aantal gevallen | COVID-19-dashboard
Lijst van landen (Top10) op basis van het aantal gevallen | COVID-19-dashboard
Lijst van landen (Top10) op basis van het aantal gevallen | COVID-19-dashboard
Lijst van landen (Top10) op basis van het aantal gevallen | COVID-19-dashboard

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

De functie FigureWidget retourneert een leeg FigureWidget-object met standaard x- en y-assen. Interactieve widgets van Jupyter hebben een lay-outkenmerk dat een aantal CSS-eigenschappen blootlegt die van invloed zijn op de lay-out van widgets.

pd. DataFrame

maakt een dataframe met behulp van een woordenboek, met drie gekleurde achtergronden voor de resultante om te vullen.

def show_latest_cases(TOP)

sorteert de waarden op bevestigde aflopende volgorde.

interactie (show_latest_cases, TOP='10')

De interactiefunctie (ipywidgets.interact) creëert automatisch gebruikersinterface (UI)-besturingselementen voor het interactief verkennen van code en gegevens.

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

maakt een rand met 2px brede lijnen van groene kleur, zodat de resultante kan worden weergegeven.

Stap 15: Totaal aantal gevallen op een wereldkaart | COVID-19-dashboard

Totaal aantal gevallen op een wereldkaart | COVID-19-dashboard
Totaal aantal gevallen op een wereldkaart | COVID-19-dashboard
Totaal aantal gevallen op een wereldkaart | COVID-19-dashboard
Totaal aantal gevallen op een wereldkaart | COVID-19-dashboard

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

Folium is een tool waarmee je eruitziet als een God die in kaart wordt gebracht, terwijl al het werk aan de achterkant wordt gedaan. Het is een Python-wrapper voor een tool met de naam folder.js. We geven het eigenlijk minimale instructies, JS doet heel veel werk op de achtergrond en we krijgen een aantal zeer, zeer coole kaarten. Het is geweldig spul. Voor de duidelijkheid wordt de kaart technisch gezien een 'folderkaart' genoemd. De tool waarmee je ze in Python kunt noemen, heet 'Folium'.

Folium maakt het gemakkelijk om gegevens die in Python zijn gemanipuleerd te visualiseren op een interactieve Leaflet-kaart. Het maakt zowel het binden van gegevens aan een kaart voor choroplet-visualisaties als het doorgeven van Vincent/Vega-visualisaties als markeringen op de kaart mogelijk.

voor i binnen bereik (0, len (confirmed_df))

In een for-lus krijgen we alle bevestigde gevallen uit de formulering van stap 9.

folium. Cirkel

We maken een bellenkaart door folium. Circle() te gebruiken om iteratief cirkels toe te voegen.

location=[confirmed_df.iloc['lat'], Confirmed_df.iloc['long'], uit de bevestigde_df van bevestigde gevallen uit stap 5, extraheren we de breedte- en lengtegraadwaarden die overeenkomen met elke locatie/landgegevens.

radius=(int((np.log(confirmed_df.iloc[i, -1]+1.00001)))+0.2)*50000, het creëren van een straalobject om de bellencirkels op de wereldkaart over de landen uit te zetten.

color='rood', fill_color='indigo', waardoor de omtrek van de bellencirkel rood is en het binnengebied indigo.

en tenslotte de cirkels op de wereldkaart plotten met behulp van het tooltip-object.

Stap 16: Het resultaat

Het resultaat!
Het resultaat!
Het resultaat!
Het resultaat!

Bijlage toont:

  1. Lijst van landen op basis van het aantal gevallen
  2. Totaal aantal gevallen op een wereldkaart

Aanbevolen: