Taula de continguts:

Tauler COVID19 al mapa del món (amb Python): 16 passos
Tauler COVID19 al mapa del món (amb Python): 16 passos

Vídeo: Tauler COVID19 al mapa del món (amb Python): 16 passos

Vídeo: Tauler COVID19 al mapa del món (amb Python): 16 passos
Vídeo: POTS Research Update 2024, De novembre
Anonim
Tauler COVID19 al mapa del món (mitjançant Python)
Tauler COVID19 al mapa del món (mitjançant Python)

Sé que gairebé tots coneixem la major informació sobre COVID19.

I aquest instructiu es tracta de crear un mapa de bombolles per representar les dades en temps real (de casos) al mapa del món.

Per a més comoditat, he afegit el programa al dipòsit de Github:

github.com/backshell/COVID19dashboard

Subministraments

No es requereixen subministraments com a tals i faríem tot el programa informàtic a través de GoogleColab Notebook. Per tant, un compte de Gmail hauria de ser suficient per començar.

Colab Notebooks / Colaboratory és un projecte de recerca de Google creat per ajudar a difondre l’educació i la investigació de l’aprenentatge automàtic. És un entorn portàtil Jupyter que no requereix cap configuració per utilitzar-lo i s’executa completament al núvol.

I NO cal instal·lar a la vostra màquina.

Pas 1: Descripció del procés de backend (base de dades)

La majoria de tots els programes de programari obtenen dades del dorsal i el resultat es format i es publica al front-end. I per a aquest programa en concret, necessitaríem dades reals de COVID19.

El G. W. C. Whiting School of Engineering ha publicat les estadístiques de COVID19 a través del seu compte github:

github.com/CSSEGISandData

Des del començament fins a la data, les estadístiques del país COVID19 es publiquen al repositori.

Per tant, faríem servir els fitxers formatats. CSV (segmentats segons les files dels països) i representarem les dades al mapa del món.

Pas 2: Paquets / biblioteques Python utilitzats al programa

A continuació es mostra la llista de paquets i biblioteques de python que faríem servir. Permeteu-me fer una visió general del propòsit de cadascun d’ells.

numpy:

NumPy és una biblioteca per al llenguatge de programació Python, que afegeix suport per a matrius i matrius grans i multidimensionals, juntament amb una gran col·lecció de funcions matemàtiques d'alt nivell per operar en aquestes matrius.

pandes:

pandas és una biblioteca de programari escrita per al llenguatge de programació Python per a la manipulació i anàlisi de dades.

matplotlib.pyplot:

pyplot està destinat principalment a trames interactives i casos senzills de generació de trames programàtiques

plotly.express:

Plotly Express és una nova biblioteca de visualització de Python d’alt nivell. Sintaxi simple per a gràfics complexos.

folium:

folium facilita la visualització de dades manipulades a Python en un fulletó interactiu.

plotly.graph_objects:

El paquet gràfic Python existeix per crear, manipular i representar figures gràfiques (és a dir, gràfics, gràfics, mapes i diagrames) representades per estructures de dades també anomenades figures.

nascut al mar:

Seaborn és una biblioteca de visualització de dades Python basada en matplotlib. Proporciona una interfície d’alt nivell per dibuixar gràfics estadístics atractius i informatius.

ipywidgets:

ipywidgets són ginys HTML interactius per a portàtils Jupyter, JupyterLab i el nucli IPython. Els quaderns prenen vida quan s’utilitzen ginys interactius.

No cal instal·lar aquests paquets, ja que treballaríem aquest programa completament a Google Colab Notebook (permetem mantenir-lo com a colab durant tot aquest instructable).

Pas 3: configureu la vostra unitat per utilitzar Colab

Configuració de la unitat per utilitzar Colab
Configuració de la unitat per utilitzar Colab
Configuració de la unitat per utilitzar Colab
Configuració de la unitat per utilitzar Colab

A Drive, creeu una carpeta per als quaderns.

Tècnicament parlant, aquest pas no és del tot necessari si voleu començar a treballar a Colab. Tanmateix, com que Colab funciona fora de la vostra unitat, no és una mala idea especificar la carpeta on voleu treballar. Per fer-ho, aneu a Google Drive i feu clic a "Nou" i, a continuació, creeu una carpeta nova.

A continuació, podeu optar per crear colabnotebook aquí o començar a treballar directament a colab i enllaçar la carpeta a la unitat, que es crea per al treball colab.

Aquesta és una bona pràctica; en cas contrari, la col·laboració que creem pot semblar desordenada a la nostra unitat.

Pas 4: Visió general del programa

En aquest programa / bloc de notes, crearíem el següent per a COVID-19:

  • Llista de països segons el nombre de casos
  • Total de casos en un mapa del món

Pas 5: Tauler COVID-19 | Part 1

Tauler de control COVID-19 | Part 1
Tauler de control COVID-19 | Part 1

Podeu utilitzar future per ajudar a portar el vostre codi des de Python 2 a Python 3 avui, i encara el teniu executat a Python 2.

Si ja teniu codi Python 3, podeu utilitzar Future per oferir compatibilitat amb Python 2 gairebé sense feina addicional.

future admet la reorganització de biblioteques estàndard (PEP 3108) mitjançant un dels diversos mecanismes que permeten accedir a la majoria de mòduls de biblioteca estàndard moguts amb els seus noms i ubicacions de Python 3 a Python 2.

Pas 6: Tauler COVID-19 | Part 2

Tauler de control COVID-19 | Part 2
Tauler de control COVID-19 | Part 2

La funció interactua (ipywidgets.interact) crea automàticament controls d’interfície d’usuari (IU) per explorar el codi i les dades de manera interactiva. És la forma més senzilla de començar a utilitzar els ginys d'IPython.

Pas 7: Tauler COVID-19 | Part 3

Tauler de control COVID-19 | Part 3
Tauler de control COVID-19 | Part 3

display_html mostra les representacions HTML d'un objecte. És a dir, busca mètodes de visualització registrats, com ara _repr_html_, i els crida, mostrant el resultat, si n'hi ha.

Pas 8: Tauler COVID-19 | Part 4

Tauler de control COVID-19 | Part 4
Tauler de control COVID-19 | Part 4

La llista de paquets (tal com s’explica al pas 2) s’importa al programa.

Pas 9: Tauler de control COVID-19 | Part 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')

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

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

Tal com s’explica al pas 1, llegint les dades com a fitxer.csv del dipòsit.

Pas 10: Tauler COVID-19 | Part 6

Tauler de control COVID-19 | Part 6
Tauler de control COVID-19 | Part 6

Canviarem els noms de les columnes df a minúscules

Pas 11: Tauler COVID-19 | Part 7

Tauler de control COVID-19 | Part 7
Tauler de control COVID-19 | Part 7

Canviarem la província / estat per estat i país / regió per país

Pas 12: Tauler COVID-19 | Part 8

Tauler de control COVID-19 | Part 8
Tauler de control COVID-19 | Part 8

Calcularem el nombre total de casos confirmats, de defunció i recuperats.

Pas 13: Tauler COVID-19 | Part 9

Tauler de control COVID-19 | Part 9
Tauler de control COVID-19 | Part 9
Tauler de control COVID-19 | Part 9
Tauler de control COVID-19 | Part 9

Mostrarem les estadístiques totals en format HTML, ja que hem importat biblioteques específiques al pas 7 anteriorment, tal com es mostra a continuació:

des de la visualització d'importació IPython.core.display, HTML

Pas 14: Llista de països (Top10) pel nombre de casos | Tauler de control COVID-19

Llista de països (Top10) pel nombre de casos | Tauler de control COVID-19
Llista de països (Top10) pel nombre de casos | Tauler de control COVID-19
Llista de països (Top10) pel nombre de casos | Tauler de control COVID-19
Llista de països (Top10) pel nombre de casos | Tauler de control COVID-19

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

La funció FigureWidget retorna un objecte FigureWidget buit amb eixos x i per defecte. Els ginys interactius Jupyter tenen un atribut de disseny que exposa una sèrie de propietats CSS que afecten la manera com es distribueixen els ginys.

pd. DataFrame

crea un marc de dades mitjançant el diccionari, amb fons de tres colors perquè el resultat es pugui omplir.

def show_latest_cases (TOP)

ordena els valors per ordre descendent confirmat.

interactua (show_latest_cases, TOP = '10 ')

La funció interactua (ipywidgets.interact) crea automàticament controls d’interfície d’usuari (IU) per explorar el codi i les dades de manera interactiva.

ipywLayout = widgets. Layout (vora = "verd sòlid de 2 px")

crea una vora amb línies d'amplada de 2 px de color verd, perquè es mostri el resultat.

Pas 15: casos totals en un mapa del món | Tauler de control COVID-19

Total de casos en un mapa del món | Tauler de control COVID-19
Total de casos en un mapa del món | Tauler de control COVID-19
Total de casos en un mapa del món | Tauler de control COVID-19
Total de casos en un mapa del món | Tauler de control COVID-19

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

Folium és una eina que us fa semblar un Déu cartogràfic mentre tot el treball es realitza a la part posterior. És un embolcall de Python per a una eina anomenada leaflet.js. Bàsicament li donem instruccions mínimes, JS fa molta feina en segon pla i obtenim uns mapes molt i molt bons. És una cosa fantàstica. Per a més claredat, el mapa es denomina tècnicament "fulletó". L'eina que us permetrà anomenar-les a Python es diu "Folium".

Folium facilita la visualització de dades manipulades a Python en un mapa de fulletó interactiu. Permet la unió de dades a un mapa per a visualitzacions de coroplet, així com passar visualitzacions de Vincent / Vega com a marcadors al mapa.

per a l'interval (0, len (confirm_df))

En un bucle for, obtindrem tots els casos confirmats de la formulació del pas 9.

folium. Cercle

Creem un mapa de bombolles utilitzant folium. Circle () per afegir cercles de manera iterativa.

ubicació = [confirmat_df.iloc ['lat'], confirmat_df.iloc ['llarg'], del fitxer confirmat_df de casos confirmats del pas 5, extraiem els valors de latitud i longitud corresponents a les dades de cada ubicació / país.

radi = (int ((np.log (confirm_df.iloc [i, -1] +1.00001))) + 0,2) * 50000, creant un objecte de radi per representar els cercles de bombolles al mapa del món a través dels països.

color = 'vermell', fill_color = 'índigo', fent que el contorn del cercle de bombolles sigui vermell i la zona interior com a índigo.

i, finalment, traçar els cercles al mapa world_map mitjançant l’objecte tooltip.

Pas 16: el resultat

El resultat!
El resultat!
El resultat!
El resultat!

L’adjunt mostra:

  1. Llista de països segons el nombre de casos
  2. Total de casos en un mapa del món

Recomanat: