Mündəricat:

Dünya Xəritəsindəki COVID19 Tablosu (Python istifadə edərək): 16 Addım
Dünya Xəritəsindəki COVID19 Tablosu (Python istifadə edərək): 16 Addım

Video: Dünya Xəritəsindəki COVID19 Tablosu (Python istifadə edərək): 16 Addım

Video: Dünya Xəritəsindəki COVID19 Tablosu (Python istifadə edərək): 16 Addım
Video: Computational Thinking - Computer Science for Business Leaders 2016 2024, Noyabr
Anonim
Dünya Xəritəsindəki COVID19 Tablosu (Python istifadə edərək)
Dünya Xəritəsindəki COVID19 Tablosu (Python istifadə edərək)

Bilirəm ki, demək olar ki, hamımız COVID19 haqqında ən çox məlumatı bilirik.

Və bu təlimat, dünya xəritəsindəki real vaxt məlumatlarını (hallar) qurmaq üçün bir baloncuk xəritəsi yaratmaqdır.

Daha rahat olmaq üçün proqramı Github deposuna əlavə etdim:

github.com/backshell/COVID19dashboard

Təchizat

Ehtiyac yoxdur və bütün kompüter proqramını GoogleColab Notebook vasitəsilə edərdik. Buna görə başlamaq üçün bir gmail hesabı kifayətdir.

Colab Notebooks / Colaboratory, maşın öyrənmə təhsili və araşdırmalarının yayılmasına kömək etmək üçün yaradılan bir Google tədqiqat layihəsidir. İstifadə etmək üçün heç bir konfiqurasiya tələb etməyən və tamamilə buludda çalışan bir Jupyter notebook mühiti.

Və maşınınızda heç bir quraşdırma tələb olunmur.

Addım 1: Backend prosesini anlamaq (verilənlər bazası)

Hər bir proqram proqramının çoxu arxa tərəfdən məlumat alır və nəticədə formatlaşdırılır və ön tərəfə nəşr olunur. Və bu xüsusi proqram üçün COVID19 real məlumatlarını tələb edərdik.

G. W. C. Whiting Mühəndislik Məktəbi, github hesabı vasitəsilə COVID19 statistikasını dərc edir:

github.com/CSSEGISandData

Başlanğıcdan bu günə qədər COVİD 19 ölkəsi ilə bağlı statistik məlumatlar anbarda dərc olunur.

Buna görə də onların. CSV formatlı fayllarından (ölkələrin sırasına görə bölünmüş) istifadə edər və dünya xəritəsindəki məlumatları tərtib edərdik.

Addım 2: Proqramda İstifadə Edilən Python Paketləri/kitabxanaları

Aşağıda istifadə edəcəyimiz python paketlərinin və kitabxanalarının siyahısı verilmişdir. Hər birinin məqsədinə bir baxış verim.

huşsuz:

NumPy, Python proqramlaşdırma dili üçün bir kitabxanadır, böyük, çoxölçülü dizilərə və matrislərə dəstək əlavə edərək, bu seriallarda işləmək üçün yüksək səviyyəli riyazi funksiyaların böyük bir kolleksiyasını əlavə edir.

pandalar:

pandas, məlumatların idarə edilməsi və təhlili üçün Python proqramlaşdırma dili üçün yazılmış bir proqram kitabxanasıdır.

matplotlib.pyplot:

pyplot əsasən interaktiv süjetlər və proqramlaşdırılmış süjet yaratmaq üçün sadə hallar üçün nəzərdə tutulmuşdur

plotly.express:

Plotly Express, yeni səviyyəli Python vizual kitabxanasıdır. Mürəkkəb qrafiklər üçün sadə sintaksis.

folium:

folium, Pythonda manipulyasiya edilmiş məlumatları interaktiv bir vərəqə xəritəsində görselleştirmeyi asanlaşdırır.

plotly.graph_objects:

Süjetli Python paketi, rəqəmlər olaraq da adlandırılan məlumat strukturları ilə təmsil olunan qrafik fiqurları (yəni qrafiklər, süjetlər, xəritələr və diaqramlar) yaratmaq, manipulyasiya etmək və göstərmək üçün mövcuddur.

dənizkənarı:

Seaborn, matplotlibə əsaslanan bir Python məlumat vizual kitabxanasıdır. Cəlbedici və məlumatlı statistik qrafika çəkmək üçün yüksək səviyyəli bir interfeys təmin edir.

ipywidgets:

ipywidgets, Jupyter noutbukları, JupyterLab və IPython nüvəsi üçün interaktiv HTML vidjetləridir. Noutbuklar interaktiv vidjetlərdən istifadə edildikdə canlanır.

Bu proqramları tamamilə Google Colab Notebook -da işləyəcəyimiz üçün bu paketlərin quraşdırılması tələb olunmur (bu təlimat boyunca kolab olaraq saxlamağa imkan verir).

Addım 3: Sürücünüzü Colab istifadə etmək üçün qurun

Sürücünüzü Colab istifadə etmək üçün qurmaq
Sürücünüzü Colab istifadə etmək üçün qurmaq
Sürücünüzü Colab istifadə etmək üçün qurmaq
Sürücünüzü Colab istifadə etmək üçün qurmaq

Sürücünüzdə, notebooklarınız üçün bir qovluq yaradın.

Texniki cəhətdən, Colab -da işə başlamaq istəyirsinizsə, bu addım tamamilə lazım deyil. Bununla birlikdə, Colab sürücünüzdən çıxdığından işləmək istədiyiniz qovluğu göstərmək pis deyil. Bunu etmək üçün Google Diskinizə girib "Yeni" düyməsini basaraq yeni bir qovluq yarada bilərsiniz.

Sonra burada colabnotebook yaratmağı seçə bilərsiniz və ya birbaşa colab -da işləməyə başlaya bilərsiniz və colab işi üçün yaradılan sürücüdəki qovluğu əlaqələndirə bilərsiniz.

Bu yaxşı bir təcrübədir, əksinə daha çox yaratdığımız colab sürücümüzdə qarışıq görünə bilər.

Addım 4: Proqrama ümumi baxış

Bu proqramda/notebookda COVID-19 üçün aşağıdakıları hazırlayardıq:

  • Davaların sayına görə ölkələrin siyahısı
  • Dünya xəritəsindəki ümumi hallar

Addım 5: COVID-19 Tablosuna | 1 -ci hissə

COVID-19 Tablosuna | 1 -ci hissə
COVID-19 Tablosuna | 1 -ci hissə

Kodunuzu bu gün Python 2 -dən Python 3 -ə köçürmək üçün gələcəkdən istifadə edə bilərsiniz və hələ də Python 2 -də işlədin.

Əgər artıq Python 3 kodunuz varsa, demək olar ki, heç bir əlavə iş olmadan Python 2 uyğunluğu təqdim etmək üçün gələcəkdən istifadə edə bilərsiniz.

gələcək, ən çox köçürülmüş standart kitabxana modullarına Python 3 adları və Python 2 -də yerləri altında daxil olmağa imkan verən bir neçə mexanizmdən biri ilə standart kitabxana yenidən qurulmasını (PEP 3108) dəstəkləyir.

Addım 6: COVID-19 Tablosuna | 2 -ci hissə

COVID-19 Tablosuna | 2 -ci hissə
COVID-19 Tablosuna | 2 -ci hissə

Qarşılıqlı əlaqə funksiyası (ipywidgets.interact), kodu və məlumatları interaktiv şəkildə araşdırmaq üçün avtomatik olaraq istifadəçi interfeysi (UI) nəzarətlərini yaradır. IPython vidjetlərindən istifadə etməyə başlamağın ən asan yolu.

Addım 7: COVID-19 Tablosuna | 3 -cü hissə

COVID-19 Tablosuna | 3 -cü hissə
COVID-19 Tablosuna | 3 -cü hissə

display_html bir obyektin HTML təsvirlərini göstərir. Yəni, _repr_html_ kimi qeydiyyatdan keçmiş görüntü metodlarını axtarır və əgər varsa nəticəni göstərən onları çağırır.

Addım 8: COVID-19 Tablosuna | 4 -cü hissə

COVID-19 Tablosuna | 4 -cü hissə
COVID-19 Tablosuna | 4 -cü hissə

Paketlərin siyahısı (2 -ci addımda izah edildiyi kimi) proqrama idxal olunur.

Addım 9: COVID-19 Tablosuna | 5 -ci hissə

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

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

Addım 1 -də izah edildiyi kimi, məlumatları depodan.csv faylı olaraq oxumaq.

Addım 10: COVID-19 Tablosuna | 6 -cı hissə

COVID-19 Tablosuna | 6 -cı hissə
COVID-19 Tablosuna | 6 -cı hissə

Df sütun adlarını kiçik hərflərə dəyişəcəyik

Addım 11: COVID-19 Tablosuna | 7 -ci hissə

COVID-19 Tablosuna | 7 -ci hissə
COVID-19 Tablosuna | 7 -ci hissə

Əyaləti/əyaləti əyalətə, ölkəni/bölgəni ölkəyə dəyişəcəyik

Addım 12: COVID-19 Tablosuna | 8 -ci hissə

COVID-19 Tablosuna | 8 -ci hissə
COVID-19 Tablosuna | 8 -ci hissə

Təsdiq edilmiş, ölüm və sağalmış halların ümumi sayını hesablayacağıq.

Addım 13: COVID-19 Tablosuna | 9 -cu hissə

COVID-19 Tablosuna | 9 -cu hissə
COVID-19 Tablosuna | 9 -cu hissə
COVID-19 Tablosuna | 9 -cu hissə
COVID-19 Tablosuna | 9 -cu hissə

Addım 7 -də müəyyən kitabxanaları əvvəllər idxal etdiyimiz üçün ümumi statistikanı HTML formatında göstərəcəyik:

IPython.core.display idxal ekran, HTML

Addım 14: Davaların sayına görə ölkələrin siyahısı (Top10) | COVID-19 Tablosuna

Vəziyyətlərin Sayına görə Ölkələrin Siyahısı (Top10) | COVID-19 Tablosuna
Vəziyyətlərin Sayına görə Ölkələrin Siyahısı (Top10) | COVID-19 Tablosuna
Vəziyyətlərin Sayına görə Ölkələrin Siyahısı (Top10) | COVID-19 Tablosuna
Vəziyyətlərin Sayına görə Ölkələrin Siyahısı (Top10) | COVID-19 Tablosuna

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

FigureWidget funksiyası standart x və y oxları olan boş bir FigureWidget obyekti qaytarır. Jupyter interaktiv vidjetləri, vidjetlərin qurulmasına təsir edən bir sıra CSS xüsusiyyətlərini ortaya çıxaran bir nizam atributuna malikdir.

pd. DataFrame

nəticəni doldurmaq üçün üç rəngli fon ilə lüğətdən istifadə edərək məlumat çərçivəsi yaradır.

def show_latest_cases (TOP)

təsdiq edilmiş azalan sıraya görə dəyərləri sıralayır.

qarşılıqlı əlaqə (show_latest_cases, TOP = '10 ')

Qarşılıqlı əlaqə funksiyası (ipywidgets.interact), kodu və məlumatları interaktiv şəkildə araşdırmaq üçün avtomatik olaraq istifadəçi interfeysi (UI) nəzarətlərini yaradır.

ipywLayout = widgets. Layout (sərhəd = 'bərk 2 piksel yaşıl')

nəticənin göstərilməsi üçün yaşıl rəngli 2 piksel genişlikdə xətlərlə bir haşiyə yaradır.

Addım 15: Dünya Xəritəsindəki Ümumi Davalar | COVID-19 İdarə Paneli

Dünya xəritəsindəki ümumi hallar | COVID-19 Tablosuna
Dünya xəritəsindəki ümumi hallar | COVID-19 Tablosuna
Dünya xəritəsindəki ümumi hallar | COVID-19 Tablosuna
Dünya xəritəsindəki ümumi hallar | COVID-19 Tablosuna

world_map = folium. Map (yer = [11, 0], plitələr = "cartodbpositron", zoom_start = 2, max_zoom = 6, min_zoom = 2)

Folium, bütün işlərin arxa tərəfində edildiyi halda, bir xəritədə Tanrıya bənzəyən bir vasitədir. Əsasən minimum təlimatlar veririk, JS arxa planda çox iş görür və çox gözəl xəritələr əldə edirik. Əla şeylərdir. Aydınlıq üçün xəritəyə texniki olaraq 'Vərəqə xəritəsi' deyilir. Pythonda onlara zəng etməyimizə imkan verən vasitəyə 'Folium' deyilir.

Folium, Pythonda idarə olunan məlumatları interaktiv bir Vərəqə xəritəsində görselleştirmeyi asanlaşdırır. Verilərin həm xoroplet görselleştirmeleri üçün xəritəyə bağlanmasını, həm də Vincent/Vega vizualizasiyalarının xəritədə marker olaraq keçməsini təmin edir.

i aralığında (0, len (confirm_df))

For loopda, təsdiqlənmiş bütün halları 9 -cu addımdan əldə edəcəyik.

folium. Dairə

Dairələri təkrar etmək üçün folium. Circle () istifadə edərək bir baloncuk xəritəsi yaradırıq.

yer = [təsdiqlənmiş_df.iloc ['lat'], təsdiqlənmiş_df.iloc ['uzun'], 5 -ci addımdakı təsdiqlənmiş halların təsdiqlənmiş_df'sindən hər bir yer/ölkə məlumatına uyğun olan enlem və uzunluq dəyərlərini çıxarırıq.

radius = (int ((np.log (confirm_df.iloc [i, -1] +1.00001)))+0.2)*50000, ölkələr arasında dünya xəritəsindəki qabarıq dairələri qurmaq üçün radius obyekti yaratmaq.

rəng = 'qırmızı', fill_color = 'indigo', baloncuk dairəsinin konturunu qırmızı, daxili sahəni isə indigo kimi etmək.

və nəhayət, tooltip obyektindən istifadə edərək world_map üzərindəki dairələri qurmaq.

Addım 16: Nəticə

Nəticə!
Nəticə!
Nəticə!
Nəticə!

Əlavələr göstərir:

  1. Davaların sayına görə ölkələrin siyahısı
  2. Dünya xəritəsindəki ümumi hallar

Tövsiyə: