Inhoudsopgave:
- Benodigdheden
- Stap 1: Het backend-proces (database) begrijpen
- Stap 2: Python-pakketten/bibliotheken die in het programma worden gebruikt
- Stap 3: Uw schijf instellen om Colab te gebruiken
- Stap 4: Overzicht van het programma
- Stap 5: COVID-19-dashboard | Deel 1
- Stap 6: COVID-19-dashboard | Deel 2
- Stap 7: COVID-19-dashboard | Deel 3
- Stap 8: COVID-19-dashboard | Deel 4
- Stap 9: COVID-19-dashboard | Deel 5
- Stap 10: COVID-19-dashboard | Deel 6
- Stap 11: COVID-19-dashboard | Deel 7
- Stap 12: COVID-19-dashboard | Deel 8
- Stap 13: COVID-19-dashboard | Deel 9
- Stap 14: Lijst van landen (Top10) op basis van het aantal gevallen | COVID-19-dashboard
- Stap 15: Totaal aantal gevallen op een wereldkaart | COVID-19-dashboard
- Stap 16: Het resultaat
Video: COVID19-dashboard op wereldkaart (met Python): 16 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
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
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
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
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
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
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
We zullen de df-kolomnamen hernoemen naar kleine letters
Stap 11: 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
We berekenen het totale aantal bevestigde, overleden en herstelde gevallen.
Stap 13: 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
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
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
Bijlage toont:
- Lijst van landen op basis van het aantal gevallen
- Totaal aantal gevallen op een wereldkaart
Aanbevolen:
Symptomen Detector (Pseudo - Covid19): 5 stappen
Symptomendetector (Pseudo - Covid19): ***Verduidelijking omdat mensen niet het hele artikel lezen !!!***Dit is mijn poging om te helpen, ik heb het gemaakt om te inspireren en om mijn idee te delen. het werkt alleen om de symptomen te detecteren en NIET de covid19 zelf. Mijn grootste probleem was en blijft - om de di
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: deze Instructable laat zien hoe je meerdere GPIO-pinnen op je RaspberryPi kunt besturen om 4 LED's van stroom te voorzien. Het zal je ook kennis laten maken met parameters en voorwaardelijke uitspraken in Python.Onze vorige Instructable met behulp van de GPIO-pinnen van je Raspberry Pi om
Aan de slag met Python: 7 stappen (met afbeeldingen)
Aan de slag met Python: programmeren is geweldig! Het is creatief, leuk en het geeft je hersenen een mentale training. Velen van ons willen meer leren over programmeren, maar overtuigen onszelf ervan dat dat niet kan. Misschien heeft het te veel wiskunde, misschien schrikt het jargon dat eromheen wordt gegooid
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Toegang tot Arduino YÚN beheren met MySQL, PHP5 en Python: 11 stappen (met afbeeldingen)
Beheer de toegang van Arduino YÚN met MySQL, PHP5 en Python: Hallo vrienden! Nou, zoals je weet, in september het nieuwe première schild van Arduino, Arduino YUN. Deze kleine vriend heeft een Linux embedded systeem waarmee we alles kunnen draaien wat je maar kunt bedenken (tenminste tot nu toe). Hoewel er weinig informatie is