Mundarija:

Jahon xaritasida COVID19 asboblar paneli (Python yordamida): 16 qadam
Jahon xaritasida COVID19 asboblar paneli (Python yordamida): 16 qadam

Video: Jahon xaritasida COVID19 asboblar paneli (Python yordamida): 16 qadam

Video: Jahon xaritasida COVID19 asboblar paneli (Python yordamida): 16 qadam
Video: A 1000 Year Old Abandoned Italian Castle - Uncovering It's Mysteries! 2024, Noyabr
Anonim
Jahon xaritasida COVID19 boshqaruv paneli (Python yordamida)
Jahon xaritasida COVID19 boshqaruv paneli (Python yordamida)

Bilaman, deyarli barchamiz COVID19 haqida ko'p ma'lumotga egamiz.

Va bu ko'rsatma ko'pikli xaritani yaratish, dunyo xaritasida real vaqtda ma'lumotlarni (holatlar) tuzish haqida.

Qulaylik uchun men dasturni Github omboriga qo'shdim:

github.com/backshell/COVID19dashboard

Ta'minotlar

Hech qanday ta'minot talab qilinmaydi va biz butun kompyuter dasturini GoogleColab Notebook orqali bajaramiz. Shunday qilib, boshlash uchun Gmail hisobi etarli bo'lishi kerak.

Colab Notebooks / Colaboratory - bu Google -ning tadqiqot loyihasi bo'lib, u mashinasozlik bo'yicha ta'lim va tadqiqotlarni tarqatishga yordam beradi. Bu Jupyter noutbuk muhiti bo'lib, u hech qanday sozlashni talab qilmaydi va butunlay bulutda ishlaydi.

Va sizning mashinangizda o'rnatish talab qilinmaydi.

1 -qadam: Backend jarayonini tushunish (ma'lumotlar bazasi)

Har bir dasturiy ta'minot dasturlarining ko'pchiligi ma'lumotlarni orqa tomondan oladi va natija formatlanadi va oldingi qismga chiqariladi. Va bu maxsus dastur uchun bizga COVID19 real ma'lumotlari kerak bo'ladi.

G. W. C. Whiting muhandislik maktabi o'zining github hisobi orqali COVID19 statistikasini e'lon qildi:

github.com/CSSEGISandData

Boshidan to shu kungacha COVID19 mamlakatlari bo'yicha statistik ma'lumotlar omborida e'lon qilinadi.

Shunday qilib, biz. CSV formatlangan fayllardan foydalanamiz (mamlakatlar qatoriga qarab) va ma'lumotlarni dunyo xaritasida tuzamiz.

2 -qadam: Dasturda ishlatiladigan Python paketlari/kutubxonalari

Quyida biz foydalanadigan python paketlar va kutubxonalar ro'yxati keltirilgan. Keling, ularning har birining maqsadi haqida qisqacha ma'lumot beray.

befarq:

NumPy-bu Python dasturlash tili uchun kutubxona bo'lib, u katta, ko'p o'lchovli massivlar va matritsalarni qo'llab-quvvatlaydi, shu qatorda ushbu massivlarda ishlash uchun yuqori darajadagi matematik funktsiyalarni to'playdi.

pandalar:

pandas - bu Python dasturlash tili uchun ma'lumotlar bilan ishlash va tahlil qilish uchun yozilgan dasturiy kutubxona.

matplotlib.pyplot:

pyplot asosan interaktiv syujetlar va dasturli syujet yaratishning oddiy holatlari uchun mo'ljallangan

plotly.express:

Plotly Express-bu yangi Python vizualizatsiya kutubxonasi. Murakkab jadvallar uchun oddiy sintaksis.

barg:

folium interaktiv varaqalar xaritasida Python -da ishlatilgan ma'lumotlarni vizualizatsiya qilishni osonlashtiradi.

plotly.graph_objects:

Python -ning aniq to'plami, shuningdek, raqamlar deb ataladigan ma'lumotlar tuzilmalari bilan tasvirlangan grafik figuralarni (ya'ni jadvallar, chizmalar, xaritalar va diagrammalar) yaratish, o'zgartirish va ko'rsatish uchun mavjud.

dengizda tug'ilgan:

Seaborn - bu matplotlibga asoslangan Python ma'lumotlarini vizualizatsiya qilish kutubxonasi. Bu jozibali va ma'lumotli statistik grafiklarni chizish uchun yuqori darajali interfeysni ta'minlaydi.

ipywidjetlar:

ipywidgets - bu Jupyter noutbuklari, JupyterLab va IPython yadrosi uchun interaktiv HTML vidjetlari. Noutbuklar interaktiv vidjetlardan foydalanilganda jonlanadi.

Bu paketlarni o'rnatish shart emas, chunki biz bu dasturni butunlay Google Colab daftarchasida ishlaymiz (bu ko'rsatma davomida uni kolab sifatida saqlaylik).

3 -qadam: Diskni Colab -dan foydalanish uchun sozlash

Colab -dan foydalanish uchun diskni sozlash
Colab -dan foydalanish uchun diskni sozlash
Colab -dan foydalanish uchun diskni sozlash
Colab -dan foydalanish uchun diskni sozlash

Diskda daftarlaringiz uchun papka yarating.

Texnik jihatdan, agar siz Colab -da ishlashni boshlamoqchi bo'lsangiz, bu qadam umuman kerak emas. Biroq, Colab sizning diskingizda ishlamayotganligi sababli, siz ishlashni xohlagan papkani ko'rsatish yomon emas. Siz buni Google Disk -ga o'tib, "Yangi" tugmasini bosish va keyin yangi papka yaratish orqali qilishingiz mumkin.

Keyin siz bu erda colabnotebook yaratishni tanlashingiz yoki to'g'ridan -to'g'ri kolabda ishlashni boshlashingiz va kolbada ishlash uchun yaratilgan diskdagi papkani bog'lashingiz mumkin.

Bu yaxshi amaliyot, aks holda biz yaratgan kolab bizning haydovchimiz uchun chalkash ko'rinishi mumkin.

4 -qadam: Dastur haqida umumiy ma'lumot

Ushbu dastur/daftarda biz COVID-19 uchun quyidagilarni yaratgan bo'lardik:

  • Ishlar soni bo'yicha davlatlar ro'yxati
  • Jahon xaritasida jami holatlar

5-qadam: COVID-19 asboblar paneli | 1 -qism

COVID-19 asboblar paneli | 1 -qism
COVID-19 asboblar paneli | 1 -qism

Siz Python 2 -dan Python 3 -ga kodingizni o'tkazishga yordam berish uchun kelajakdan foydalanishingiz mumkin va hali ham Python 2 -da ishlaydi.

Agar sizda allaqachon Python 3 kodi bo'lsa, siz Python 2 -ning mos kelishini taklif qilish uchun kelajakdan foydalanishingiz mumkin, deyarli hech qanday qo'shimcha ishsiz.

kelajakda kutubxonaning standart qayta tashkil etilishini (PEP 3108) bir nechta mexanizmlardan biri yordamida qo'llab -quvvatlaydi, bu ko'pchilik ko'chirilgan standart kutubxona modullariga Python 3 nomi va Python 2 dagi joylashuvi ostida kirishga imkon beradi.

6-qadam: COVID-19 asboblar paneli | 2 -qism

COVID-19 asboblar paneli | 2 -qism
COVID-19 asboblar paneli | 2 -qism

O'zaro aloqa funktsiyasi (ipywidgets.interact) kod va ma'lumotlarni interaktiv o'rganish uchun avtomatik ravishda foydalanuvchi interfeysi (UI) boshqaruvini yaratadi. Bu IPython vidjetlaridan foydalanishni boshlashning eng oson yo'li.

7-qadam: COVID-19 asboblar paneli | 3 -qism

COVID-19 asboblar paneli | 3 -qism
COVID-19 asboblar paneli | 3 -qism

display_html ob'ektning HTML ko'rinishini ko'rsatadi. Ya'ni, _repr_html_ kabi ro'yxatdan o'tgan ko'rsatish usullarini qidiradi va agar mavjud bo'lsa, natijani ko'rsatib, ularni chaqiradi.

8-qadam: COVID-19 asboblar paneli | 4 -qism

COVID-19 asboblar paneli | 4 -qism
COVID-19 asboblar paneli | 4 -qism

Paketlar ro'yxati (2 -bosqichda aytilganidek) dasturga import qilinadi.

9-qadam: COVID-19 asboblar paneli | 5 -qism

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

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

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

1 -qadamda tushuntirilganidek, ma'lumotlarni ombordan.csv fayli sifatida o'qish.

10-qadam: COVID-19 asboblar paneli | 6 -qism

COVID-19 asboblar paneli | 6 -qism
COVID-19 asboblar paneli | 6 -qism

Biz df ustun nomlarini kichik harflarga o'zgartiramiz

11-qadam: COVID-19 asboblar paneli | 7 -qism

COVID-19 asboblar paneli | 7 -qism
COVID-19 asboblar paneli | 7 -qism

Biz viloyatni/shtatni shtatga, mamlakatni/viloyatni mamlakatga o'zgartiramiz

12-qadam: COVID-19 asboblar paneli | 8 -qism

COVID-19 asboblar paneli | 8 -qism
COVID-19 asboblar paneli | 8 -qism

Biz tasdiqlangan, o'lim va tiklangan holatlarning umumiy sonini hisoblaymiz.

13-qadam: COVID-19 asboblar paneli | 9 -qism

COVID-19 asboblar paneli | 9 -qism
COVID-19 asboblar paneli | 9 -qism
COVID-19 asboblar paneli | 9 -qism
COVID-19 asboblar paneli | 9 -qism

Biz umumiy statistikani HTML formatida ko'rsatamiz, chunki biz 7 -bosqichda ma'lum kutubxonalarni quyida keltirilganidek import qildik:

IPython.core.display import displeyidan, HTML

14 -qadam: Ishlar soni bo'yicha mamlakatlar ro'yxati (Top10) | COVID-19 boshqaruv paneli

Ishlar soni bo'yicha mamlakatlar ro'yxati (Top10) | COVID-19 asboblar paneli
Ishlar soni bo'yicha mamlakatlar ro'yxati (Top10) | COVID-19 asboblar paneli
Ishlar soni bo'yicha mamlakatlar ro'yxati (Top10) | COVID-19 asboblar paneli
Ishlar soni bo'yicha mamlakatlar ro'yxati (Top10) | COVID-19 asboblar paneli

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

FigureWidget funktsiyasi bo'sh x va y o'qlari bo'lgan bo'sh FigureWidget ob'ektini qaytaradi. Jupyter interaktiv vidjetlarida vidjetlarning joylashuviga ta'sir ko'rsatadigan CSS -ning bir qancha xususiyatlarini ochib beradigan tartib xususiyati mavjud.

pd. DataFrame

Lug'at yordamida ma'lumotlar ramkasini yaratadi, natijada to'ldirilishi uchun uchta rangli fon.

def show_latest_cases (TOP)

tasdiqlangan kamayish tartibida qiymatlarni saralaydi.

o'zaro ta'sir qilish (show_latest_cases, TOP = '10 ')

O'zaro aloqa funktsiyasi (ipywidgets.interact) kod va ma'lumotlarni interaktiv o'rganish uchun avtomatik ravishda foydalanuvchi interfeysi (UI) boshqaruvini yaratadi.

ipywLayout = vidjetlar. Layout (chegara = "qattiq 2 piksel yashil")

natijani ko'rsatish uchun yashil rangli 2 pikselli kenglikdagi chiziqlar bilan chegara hosil qiladi.

15 -qadam: Jahon xaritasidagi jami holatlar | COVID-19 boshqaruv paneli

Jahon xaritasidagi jami holatlar | COVID-19 asboblar paneli
Jahon xaritasidagi jami holatlar | COVID-19 asboblar paneli
Jahon xaritasidagi jami holatlar | COVID-19 asboblar paneli
Jahon xaritasidagi jami holatlar | COVID-19 asboblar paneli

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

Folium - bu sizni Xudoni xaritaga o'xshatadigan vosita, hamma ish orqa tomondan bajariladi, bu leaflet.js deb nomlangan asbob uchun Python. Biz asosan minimal ko'rsatmalarni beramiz, JS juda ko'p fonda ishlaydi va biz juda ajoyib xaritalarni olamiz. Bu ajoyib narsalar. Aniqlik uchun, xarita texnik jihatdan "varaqalar xaritasi" deb nomlanadi. Python -da ularni chaqiradigan asbob "Folium" deb nomlanadi.

Folium interaktiv Leaflet xaritasida Python -da ishlatilgan ma'lumotlarni vizualizatsiya qilishni osonlashtiradi. Bu ma'lumotni xaroplet vizualizatsiyasi uchun xaritaga ulashga, shuningdek Vinsent/Vega vizualizatsiyasini xaritada marker sifatida o'tkazishga imkon beradi.

i uchun diapazonda (0, len (tasdiqlangan_df))

For loopida biz tasdiqlangan barcha holatlarni 9 -qadam formulasidan olamiz.

doira

Doiralarni ketma -ket qo'shish uchun folium. Circle () yordamida qabariq xaritasini tuzamiz.

manzil = [tasdiqlangan_df.iloc ['lat'], tasdiqlangan_df.iloc ['uzun'],

5 -bosqichdan tasdiqlangan holatlarning tasdiqlangan_dfidan biz har bir joy/mamlakat ma'lumotlariga mos keladigan kenglik va uzunlik qiymatlarini chiqaramiz.

radius = (int ((np.log (tasdiqlangan_df.iloc [i, -1] +1.00001)))+0,2)*50000,

mamlakatlar bo'ylab dunyo xaritasida qabariq aylanalarni chizish uchun radiusli ob'ekt yaratish.

rang = 'qizil', fill_color = 'indigo',

pufakchali aylananing konturini qizil, ichki qismini esa indigo qilish.

va nihoyat, tooltip ob'ektidan foydalanib, world_map -da doiralarni chizish.

16 -qadam: Natija

Natija!
Natija!
Natija!
Natija!

Qo'shimchada ko'rsatilgan:

  1. Ishlar soni bo'yicha davlatlar ro'yxati
  2. Jahon xaritasida jami holatlar

Tavsiya: