Talaan ng mga Nilalaman:

COVID19 Dashboard sa World Map (gamit ang Python): 16 Hakbang
COVID19 Dashboard sa World Map (gamit ang Python): 16 Hakbang

Video: COVID19 Dashboard sa World Map (gamit ang Python): 16 Hakbang

Video: COVID19 Dashboard sa World Map (gamit ang Python): 16 Hakbang
Video: making a map in python - making live world maps with python - covid python data app - Lesson 33 2024, Nobyembre
Anonim
COVID19 Dashboard sa World Map (gamit ang Python)
COVID19 Dashboard sa World Map (gamit ang Python)

Alam kong halos lahat sa atin ang nakakaalam ng maraming impormasyon tungkol sa COVID19.

At ang itinuturo na ito ay tungkol sa paglikha ng isang mapa ng bubble, upang mailagay ang real-time na data (ng mga kaso) sa mapa ng mundo.

Para sa higit na kaginhawaan, naidagdag ko ang programa sa imbakan ng Github:

github.com/backshell/COVID19dashboard

Mga gamit

Walang mga kinakailangang supply tulad nito at gagawin namin ang buong programa sa computer sa pamamagitan ng GoogleColab Notebook. Kaya ang isang gmail account ay dapat na sapat upang magsimula sa.

Ang Colab Notebooks / Colaboratory ay isang proyekto sa pagsasaliksik ng Google na nilikha upang makatulong na maipalaganap ang edukasyon sa pag-aaral ng makina at pagsasaliksik. Ito ay isang kapaligiran ng notebook ng Jupyter na nangangailangan ng walang pag-setup upang magamit at ganap na tumatakbo sa cloud.

At HINDI kinakailangan ng pag-install sa iyong machine.

Hakbang 1: Pag-unawa sa Proseso ng Backend (database)

Karamihan sa bawat programa ng software ay kukuha ng data mula sa backend at ang resulta ay nai-format at nai-publish sa front-end. At para sa partikular na program na ito, kakailanganin namin ang real-data ng COVID19.

Ang G. W. C. Ang Whiting School of Engineering ay naglathala ng mga istatistika ng COVID19 sa pamamagitan ng kanyang github account:

github.com/CSSEGISandData

Mula sa simula hanggang ngayon, ang COVID19 na matalinong istatistika ng bansa ay nai-publish sa lalagyan.

Kaya gagamitin namin ang. CSV na naka-format na mga file ng mga ito (naka-segment na hilera ng mga bansa) at balangkas ang data sa mapa ng mundo.

Hakbang 2: Mga Python Package / library na Ginamit sa Program

Nasa ibaba ang listahan ng mga python package at library, na gagamitin namin. Hayaan akong magbigay ng isang pangkalahatang ideya ng layunin ng bawat isa sa kanila.

numpy:

Ang NumPy ay isang silid-aklatan para sa wika ng programa ng Python, na nagdaragdag ng suporta para sa malaki, multi-dimensional na mga array at matrice, kasama ang isang malaking koleksyon ng mga mataas na antas na pag-andar ng matematika upang mapatakbo ang mga array na ito.

pandas:

Ang pandas ay isang library ng software na nakasulat para sa wika ng programa ng Python para sa pagmamanipula at pagtatasa ng data.

matplotlib.pyplot:

Higit sa lahat ay inilaan ang pyplot para sa mga interactive plots at simpleng mga kaso ng henerasyong programmatic plot

balangkas. ipahayag:

Ang Plotly Express ay isang bagong high-level na library ng visualization ng Python. Simpleng syntax para sa mga kumplikadong tsart.

folium:

Ginagawang madali ng folium na mailarawan ang data na na-manipulate sa Python sa isang interactive na leaflet map.

plotly.graph_objects:

Ang balangkas na Python package ay umiiral upang lumikha, manipulahin at mag-render ng mga graphic na numero (hal. Mga tsart, plot, mapa at diagram) na kinakatawan ng mga istruktura ng data na tinukoy din bilang mga numero.

seaborn:

Ang Seaborn ay isang Python data visualization library batay sa matplotlib. Nagbibigay ito ng isang mataas na antas na interface para sa pagguhit ng kaakit-akit at nagbibigay-kaalaman na mga graphic na pang-istatistika.

ipywidgets:

Ang mga ipywidget ay interactive na mga widget ng HTML para sa mga notebook ng Jupyter, JupyterLab at ang kernel ng IPython. Nabuhay ang mga notebook kapag ginamit ang mga interactive na widget.

Ang pag-install ng mga package na ito ay hindi kinakailangan dahil gagana namin ang program na ito sa Google Colab Notebook (pinapanatili itong colab sa buong pagtuturo na ito).

Hakbang 3: Pagse-set up ng iyong Drive, upang magamit ang Colab

Pagse-set up ng iyong Drive, upang magamit ang Colab
Pagse-set up ng iyong Drive, upang magamit ang Colab
Pagse-set up ng iyong Drive, upang magamit ang Colab
Pagse-set up ng iyong Drive, upang magamit ang Colab

Sa iyong Drive, Lumikha ng isang folder para sa iyong mga notebook.

Sa teknikal na pagsasalita, ang hakbang na ito ay hindi lubos na kinakailangan kung nais mong magsimulang magtrabaho sa Colab lamang. Gayunpaman, dahil gumagana ang Colab sa iyong drive, hindi masamang ideya na tukuyin ang folder kung saan mo nais gumana. Magagawa mo iyon sa pamamagitan ng pagpunta sa iyong Google Drive at pag-click sa "Bago" at pagkatapos ay paglikha ng isang bagong folder.

Pagkatapos ay maaari kang pumili upang lumikha ng colabnotebook dito o magsimulang magtrabaho nang direkta sa colab at i-link ang folder sa drive, na nilikha para sa colab work.

Ito ay isang mahusay na kasanayan, kung hindi pa ang colab na nilikha namin ay maaaring magmukhang magulo sa aming drive.

Hakbang 4: Pangkalahatang-ideya ng Programa

Sa program / notebook na ito, lilikha kami ng sumusunod para sa COVID-19:

  • Listahan ng Mga Bansa ayon sa Bilang ng Mga Kaso
  • Kabuuang Mga Kaso sa isang Mapa ng Mundo

Hakbang 5: COVID-19 Dashboard | Bahagi 1

COVID-19 Dashboard | Bahagi 1
COVID-19 Dashboard | Bahagi 1

Maaari mong gamitin ang hinaharap upang makatulong na mai-port ang iyong code mula sa Python 2 hanggang Python 3 ngayon - at magpatakbo pa rin ito sa Python 2.

Kung mayroon ka nang Python 3 code, maaari mong gamitin sa halip ang hinaharap upang mag-alok ng pagiging tugma sa Python 2 na halos walang labis na trabaho.

Sinusuportahan ng hinaharap ang karaniwang pag-aayos ng silid-aklatan (PEP 3108) sa pamamagitan ng isa sa maraming mga mekanismo, na pinapayagan ang karamihan sa inilipat na mga karaniwang module ng library na ma-access sa ilalim ng kanilang mga pangalan ng Python 3 at mga lokasyon sa Python 2.

Hakbang 6: COVID-19 Dashboard | Bahagi 2

COVID-19 Dashboard | Bahagi 2
COVID-19 Dashboard | Bahagi 2

Ang function ng pakikipag-ugnay (ipywidgets.interact) ay awtomatikong lumilikha ng mga kontrol ng interface ng gumagamit (UI) para sa paggalugad ng code at data nang interactive. Ito ang pinakamadaling paraan upang makapagsimula sa paggamit ng mga widget ng IPython.

Hakbang 7: Dashboard ng COVID-19 | Bahagi 3

COVID-19 Dashboard | Bahagi 3
COVID-19 Dashboard | Bahagi 3

ipinapakita ng display_html ang mga representasyon ng HTML ng isang bagay. Iyon ay, tinitingnan nito ang mga nakarehistrong pamamaraan ng pagpapakita, tulad ng _repr_html_, at tinawag ang mga ito, ipinapakita ang resulta, kung mayroon man.

Hakbang 8: Dashboard ng COVID-19 | Bahagi 4

COVID-19 Dashboard | Bahagi 4
COVID-19 Dashboard | Bahagi 4

Ang listahan ng mga pakete (tulad ng ipinaliwanag sa hakbang2) ay nai-import sa programa.

Hakbang 9: Dashboard ng COVID-19 | Bahagi 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')

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

Tulad ng ipinaliwanag sa step1, ang pagbabasa ng data bilang.csv file mula sa imbakan.

Hakbang 10: COVID-19 Dashboard | Bahagi 6

COVID-19 Dashboard | Bahagi 6
COVID-19 Dashboard | Bahagi 6

Papalitan naming pangalan ang mga pangalan ng haligi ng df sa maliit na titik

Hakbang 11: Dashboard ng COVID-19 | Bahagi 7

COVID-19 Dashboard | Bahagi 7
COVID-19 Dashboard | Bahagi 7

Papalitan natin ang lalawigan / estado sa estado at bansa / rehiyon sa isang bansa

Hakbang 12: COVID-19 Dashboard | Bahagi 8

COVID-19 Dashboard | Bahagi 8
COVID-19 Dashboard | Bahagi 8

Kukuwentahin namin ang kabuuang bilang ng mga nakumpirmang, namatay at nakuhang mga kaso.

Hakbang 13: COVID-19 Dashboard | Bahagi 9

COVID-19 Dashboard | Bahagi 9
COVID-19 Dashboard | Bahagi 9
COVID-19 Dashboard | Bahagi 9
COVID-19 Dashboard | Bahagi 9

Ipapakita namin ang kabuuang mga istatistika sa format na HTML, habang nag-import kami ng mga tukoy na aklatan sa hakbang7 nang mas maaga sa ibaba:

mula sa IPython.core.display display ng pag-import, HTML

Hakbang 14: Listahan ng Mga Bansa (Top10) ayon sa Bilang ng Mga Kaso | COVID-19 Dashboard

Listahan ng Mga Bansa (Nangungunang10) ayon sa Bilang ng Mga Kaso | COVID-19 Dashboard
Listahan ng Mga Bansa (Nangungunang10) ayon sa Bilang ng Mga Kaso | COVID-19 Dashboard
Listahan ng Mga Bansa (Nangungunang10) ayon sa Bilang ng Mga Kaso | COVID-19 Dashboard
Listahan ng Mga Bansa (Nangungunang10) ayon sa Bilang ng Mga Kaso | COVID-19 Dashboard

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

Ang pagpapaandar ng FigureWidget ay nagbabalik ng walang laman na object na Figuridid na may default x at y axes. Ang Jupyter interactive na mga widget ay may isang katangian ng layout na naglalantad ng isang bilang ng mga pag-aari ng CSS na nakakaapekto sa kung paano inilalagay ang mga widget.

pd. DataFrame

lumilikha ng dataframe gamit ang diksyonaryo, na may tatlong mga background ng kulay para sa resulta upang mai-populate.

def show_latest_cases (TOP)

pinagsasama ang mga halaga sa pamamagitan ng kumpirmadong pababang pagkakasunud-sunod.

makipag-ugnay (show_latest_cases, TOP = '10 ')

Ang function ng pakikipag-ugnay (ipywidgets.interact) ay awtomatikong lumilikha ng mga kontrol ng interface ng gumagamit (UI) para sa paggalugad ng code at data nang interactive.

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

lumilikha ng isang hangganan na may 2px lapad na mga linya ng berdeng kulay, para maipakita ang resulta.

Hakbang 15: Kabuuang Mga Kaso sa isang Mapa sa Mundo | COVID-19 Dashboard

Kabuuang Mga Kaso sa isang Mapa ng Mundo | COVID-19 Dashboard
Kabuuang Mga Kaso sa isang Mapa ng Mundo | COVID-19 Dashboard
Kabuuang Mga Kaso sa isang Mapa ng Mundo | COVID-19 Dashboard
Kabuuang Mga Kaso sa isang Mapa ng Mundo | COVID-19 Dashboard

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

Ang Folium ay isang tool na nagpapamukha sa iyo sa isang pagmamapa ng Diyos habang ang lahat ng gawain ay ginagawa sa likurang dulo. Ito ay isang pambalot ng Python para sa isang tool na tinatawag na leaflet.js. Karaniwan naming binibigyan ito ng kaunting mga tagubilin, ang JS ay maraming gawain sa background at nakakakuha kami ng ilang napaka, napaka-cool na mga mapa. Mahusay na bagay. Para sa kalinawan, ang mapa ay teknikal na tinatawag na 'Leaflet Map'. Ang tool na tawagan mo sila sa Python ay tinatawag na 'Folium'.

Ginagawang madali ng Folium na mailarawan ang data na na-manipulate sa Python sa isang interactive na mapa ng Leaflet. Pinapayagan nito ang parehong pagbuklod ng data sa isang mapa para sa mga visualization ng choropleth pati na rin ang pagpasa sa mga visualization ng Vincent / Vega bilang mga marker sa mapa.

para sa saklaw ko (0, len (Confirm_df))

Sa isang para sa loop, makukuha namin ang lahat ng mga nakumpirmang kaso mula sa form9 na formulate.

folium. Circle

Lumilikha kami ng isang mapa ng bubble sa pamamagitan ng paggamit ng folium. Circle () upang paulit-ulit na magdagdag ng mga lupon.

lokasyon = [nakumpirma_df.iloc ['lat'], nakumpirma_df.iloc ['mahaba'],

mula sa kumpirmadong_df ng mga nakumpirmang kaso mula sa step5, kinukuha namin ang mga halagang latitude at longitude na naaayon sa bawat data ng lokasyon / bansa.

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

lumilikha ng radius object upang mailagay ang mga bilog na bubble sa mapa ng mundo sa buong mga bansa.

kulay = 'pula', fill_color = 'indigo',

ginagawa ang balangkas ng bilog ng bubble bilang pula at ang panloob na lugar bilang indigo.

at sa wakas ay paglalagay ng mga lupon sa world_map gamit ang tooltip object.

Hakbang 16: Ang Resulta

Ang resulta!
Ang resulta!
Ang resulta!
Ang resulta!

Ipinapakita ang kalakip:

  1. Listahan ng Mga Bansa ayon sa Bilang ng Mga Kaso
  2. Kabuuang Mga Kaso sa isang Mapa ng Mundo

Inirerekumendang: