Innehållsförteckning:

COVID19 -instrumentpanel på världskartan (med Python): 16 steg
COVID19 -instrumentpanel på världskartan (med Python): 16 steg

Video: COVID19 -instrumentpanel på världskartan (med Python): 16 steg

Video: COVID19 -instrumentpanel på världskartan (med Python): 16 steg
Video: Covid hurts, but kid home from school hurts more! #map #maps #datavisualization #geography #worldmap 2024, November
Anonim
COVID19 -instrumentpanel på världskartan (med Python)
COVID19 -instrumentpanel på världskartan (med Python)

Jag vet att nästan alla vet mest information om COVID19.

Och det här instruerbara handlar om att skapa en bubbelkarta, för att plotta realtidsdata (om fall) på världskartan.

För mer bekvämlighet har jag lagt till programmet i Github -förvaret:

github.com/backshell/COVID19dashboard

Tillbehör

Det behövs inga förnödenheter som sådana och vi skulle göra hela datorprogrammet via GoogleColab Notebook. Så ett gmail -konto borde räcka till att börja med.

Colab Notebooks / Colaboratory är ett Google -forskningsprojekt som skapats för att sprida utbildning och forskning i maskininlärning. Det är en Jupyter notebook -miljö som inte kräver någon installation och körs helt i molnet.

Och INGEN installation krävs i din maskin.

Steg 1: Förstå backendprocessen (databas)

De flesta av alla program hämtar data från backend och den resulterande formateras och publiceras till front-end. Och för det här programmet skulle vi kräva verkliga data från COVID19.

G. W. C. Whiting School of Engineering har publicerat COVID19 -statistiken via sitt github -konto:

github.com/CSSEGISandData

Från början till datum publiceras den landvisa statistiken för COVID19 i förvaret.

Så vi skulle använda. CSV-formaterade filer av dem (segmenterade radvis i länder) och plotta data på världskartan.

Steg 2: Python -paket/bibliotek som används i programmet

Nedan finns listan över python -paket och bibliotek som vi skulle använda. Låt mig ge en översikt över syftet med var och en av dem.

numpy:

NumPy är ett bibliotek för Python-programmeringsspråket och lägger till stöd för stora, flerdimensionella matriser och matriser, tillsammans med en stor samling matematiska funktioner på hög nivå för att fungera på dessa matriser.

pandor:

pandor är ett mjukvarubibliotek som är skrivet för programmeringsspråket Python för manipulation och analys av data.

matplotlib.pyplot:

pyplot är främst avsedd för interaktiva tomter och enkla fall av programmatisk tomtgenerering

plotly.express:

Plotly Express är ett nytt Python-visualiseringsbibliotek på hög nivå. Enkel syntax för komplexa diagram.

folium:

folium gör det enkelt att visualisera data som har manipulerats i Python på en interaktiv broschyrkarta.

plotly.graph_objects:

Det plottaktiga Python -paketet finns för att skapa, manipulera och återge grafiska figurer (dvs. diagram, diagram, kartor och diagram) representerade av datastrukturer som också kallas figurer.

havsfödda:

Seaborn är ett Python -datavisualiseringsbibliotek baserat på matplotlib. Det ger ett gränssnitt på hög nivå för att rita attraktiv och informativ statistisk grafik.

ipywidgets:

ipywidgets är interaktiva HTML -widgets för Jupyter -bärbara datorer, JupyterLab och IPython -kärnan. Bärbara datorer blir levande när interaktiva widgets används.

Det är inte nödvändigt att installera dessa paket eftersom vi helt och hållet skulle arbeta med det här programmet i Google Colab Notebook (låt oss behålla det som colab under hela denna instruerbara).

Steg 3: Konfigurera din enhet för att använda Colab

Konfigurera din enhet för att använda Colab
Konfigurera din enhet för att använda Colab
Konfigurera din enhet för att använda Colab
Konfigurera din enhet för att använda Colab

Skapa en mapp för dina anteckningsböcker på din enhet.

Tekniskt sett är detta steg inte helt nödvändigt om du bara vill börja arbeta i Colab. Eftersom Colab arbetar utanför din enhet är det dock ingen dålig idé att ange mappen där du vill arbeta. Du kan göra det genom att gå till din Google Drive och klicka på "Ny" och sedan skapa en ny mapp.

Då kan du välja att skapa colabnotebook här eller börja arbeta direkt arbeta i colab och länka mappen i enheten, som skapas för colab -arbete.

Detta är en bra praxis, annars mer colab vi skapar det kan se rörigt i vår enhet.

Steg 4: Översikt över programmet

I detta program/anteckningsbok skulle vi skapa följande för COVID-19:

  • Lista över länder efter antal fall
  • Totalt antal fall på en världskarta

Steg 5: COVID-19-instrumentpanel | Del 1

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

Du kan använda framtiden för att hjälpa till att överföra din kod från Python 2 till Python 3 idag - och fortfarande ha den igång på Python 2.

Om du redan har Python 3 -kod kan du istället använda framtiden för att erbjuda Python 2 -kompatibilitet med nästan inget extra arbete.

Future stöder standardbibliotekets omorganisation (PEP 3108) via en av flera mekanismer, så att de mest flyttade standardbiblioteksmodulerna kan nås under deras Python 3 -namn och platser i Python 2.

Steg 6: COVID-19-instrumentpanel | Del 2

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

Interaktionsfunktionen (ipywidgets.interact) skapar automatiskt användargränssnitt (UI) kontroller för att utforska kod och data interaktivt. Det är det enklaste sättet att komma igång med att använda IPythons widgets.

Steg 7: COVID-19 Dashboard | Del 3

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

display_html visar HTML -representationer för ett objekt. Det vill säga, det letar upp registrerade visningsmetoder, till exempel _repr_html_, och kallar dem och visar eventuellt resultatet.

Steg 8: COVID-19 Dashboard | Del 4

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

Lista över paket (enligt förklaring i steg 2) importeras till programmet.

Steg 9: COVID-19-instrumentpanel | 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 förklaras i steg 1 läser du data som.csv -fil från förvaret.

Steg 10: COVID-19 Dashboard | Del 6

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

Vi kommer att byta namn på df -kolumnnamnen till gemener

Steg 11: COVID-19-instrumentpanel | Del 7

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

Vi ska ändra provinsen/staten till stat och land/region till land

Steg 12: COVID-19 Dashboard | Del 8

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

Vi kommer att beräkna det totala antalet bekräftade, dödsfall och återkommande fall.

Steg 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 kommer att visa den totala statistiken i HTML -format, eftersom vi importerade specifika bibliotek i steg 7 tidigare enligt nedan:

från IPython.core.display import, HTML

Steg 14: Lista över länder (Top10) efter antal fall | COVID-19-instrumentpanel

Lista över länder (Top10) efter antal fall | COVID-19-instrumentpanel
Lista över länder (Top10) efter antal fall | COVID-19-instrumentpanel
Lista över länder (Top10) efter antal fall | COVID-19-instrumentpanel
Lista över länder (Top10) efter antal fall | COVID-19-instrumentpanel

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

FigureWidget -funktionen returnerar ett tomt FigureWidget -objekt med standard x- och y -axlar. Jupyter interaktiva widgets har ett layoutattribut som exponerar ett antal CSS -egenskaper som påverkar hur widgets läggs ut.

pd. DataFrame

skapar dataframe med hjälp av ordlista, med tre färgbakgrunder för den resulterande att fylla i.

def show_latest_cases (TOP)

sorterar värdena efter bekräftad fallande ordning.

interagera (show_latest_cases, TOP = '10 ')

Interaktionsfunktionen (ipywidgets.interact) skapar automatiskt användargränssnitt (UI) kontroller för att utforska kod och data interaktivt.

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

skapar en kant med 2px breddlinjer av grön färg, så att den resulterande kan visas.

Steg 15: Totalt antal fall på en världskarta | COVID-19-instrumentpanel

Totalt antal fall på en världskarta | COVID-19-instrumentpanel
Totalt antal fall på en världskarta | COVID-19-instrumentpanel
Totalt antal fall på en världskarta | COVID-19-instrumentpanel
Totalt antal fall på en världskarta | COVID-19-instrumentpanel

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

Folium är ett verktyg som får dig att se ut som en kartläggande Gud medan allt arbete utförs i den bakre änden. Det är en Python -omslag för ett verktyg som kallas leaflet.js. Vi ger det i princip minimala instruktioner, JS gör massor av arbete i bakgrunden och vi får några väldigt, väldigt coola kartor. Det är bra grejer. För tydlighetens skull kallas kartan tekniskt för en "broschyrkarta". Verktyget som låter dig kalla dem i Python kallas 'Folium'.

Folium gör det enkelt att visualisera data som har manipulerats i Python på en interaktiv Leaflet -karta. Det möjliggör både bindning av data till en karta för choropleth -visualiseringar samt att passera Vincent/Vega -visualiseringar som markörer på kartan.

för i inom intervallet (0, len (confirm_df))

I en for loop kommer vi att få alla bekräftade fall från formuläret i steg 9.

folium. cirkel

Vi skapar en bubbelkarta med hjälp av folium. Circle () för att iterativt lägga till cirklar.

location = [confirm_df.iloc ['lat'], confirm_df.iloc ['long'],

från bekräftat_df av bekräftade fall från steg 5, extraherar vi latitud- och longitudvärdena som motsvarar varje plats/landdata.

radie = (int ((np.log (confirm_df.iloc [i, -1] +1.00001)))+0.2)*50000,

skapa radieobjekt för att plotta bubblacirklarna på världskartan över länderna.

color = 'röd', fill_color = 'indigo',

att göra konturen av bubbelcirkeln så röd och det inre området som indigo.

och slutligen plotta cirklarna på världskartan med verktygstipsobjektet.

Steg 16: Resultatet

Resultatet!
Resultatet!
Resultatet!
Resultatet!

Bilaga visar:

  1. Lista över länder efter antal fall
  2. Totalt antal fall på en världskarta

Rekommenderad: