İçindekiler:

Dünya Haritasında COVID19 Kontrol Paneli(Python Kullanarak): 16 Adım
Dünya Haritasında COVID19 Kontrol Paneli(Python Kullanarak): 16 Adım

Video: Dünya Haritasında COVID19 Kontrol Paneli(Python Kullanarak): 16 Adım

Video: Dünya Haritasında COVID19 Kontrol Paneli(Python Kullanarak): 16 Adım
Video: 6 milyon TL’lik Yemek Sepeti siparişi 🤣 2024, Kasım
Anonim
Dünya Haritasında COVID19 Kontrol Paneli(Python kullanarak)
Dünya Haritasında COVID19 Kontrol Paneli(Python kullanarak)

Neredeyse hepimizin COVID19 hakkında çoğu bilgiyi bildiğimizi biliyorum.

Ve bu talimat, gerçek zamanlı verileri (vakaların) dünya haritasında çizmek için bir kabarcık haritası oluşturmakla ilgilidir.

Daha fazla kolaylık sağlamak için programı Github deposuna ekledim:

github.com/backshell/COVID19dashboard

Gereçler

Böyle bir sarf malzemesine gerek yoktur ve tüm bilgisayar programını GoogleColab Not Defteri aracılığıyla yapardık. Bu nedenle başlangıç için bir gmail hesabı yeterli olacaktır.

Colab Notebooks / Colaboratory, makine öğrenimi eğitimi ve araştırmasını yaygınlaştırmaya yardımcı olmak için oluşturulmuş bir Google araştırma projesidir. Kullanmak için kurulum gerektirmeyen ve tamamen bulutta çalışan bir Jupyter notebook ortamıdır.

Ve makinenizde HİÇBİR kurulum gerekmez.

Adım 1: Arka Uç Sürecini Anlamak(veritabanı)

Her yazılım programının çoğu arka uçtan veri alır ve sonuç biçimlendirilir ve ön uçta yayınlanır. Ve bu özel program için COVID19 gerçek verilerine ihtiyacımız olacak.

G. W. C. Whiting Mühendislik Okulu, github hesabı aracılığıyla COVID19 istatistiklerini yayınlıyor:

github.com/CSSEGISandData

Başlangıcından bugüne kadar, COVID19 ülke bazında istatistikler havuzda yayınlanmaktadır.

Bu yüzden onların. CSV formatındaki dosyalarını (ülkelerin sıra bazında bölümlere ayrılmış) kullanır ve verileri dünya haritasına çizerdik.

Adım 2: Programda Kullanılan Python Paketleri/kütüphaneleri

Aşağıda, kullanacağımız python paketlerinin ve kitaplıklarının listesi bulunmaktadır. Her birinin amacına genel bir bakış vereyim.

dizi:

NumPy, Python programlama dili için büyük, çok boyutlu diziler ve matrisler için destek ve bu diziler üzerinde çalışacak geniş bir üst düzey matematiksel işlevler koleksiyonu ekleyen bir kitaplıktır.

pandalar:

pandas, veri işleme ve analizi için Python programlama dili için yazılmış bir yazılım kütüphanesidir.

matplotlib.pyplot:

pyplot temel olarak etkileşimli grafikler ve basit programatik arsa oluşturma durumları için tasarlanmıştır

arsa.express:

Plotly Express, yeni bir üst düzey Python görselleştirme kitaplığıdır. Karmaşık grafikler için basit sözdizimi.

yaprak:

folium, Python'da manipüle edilen verileri etkileşimli bir broşür haritasında görselleştirmeyi kolaylaştırır.

plotly.graph_objects:

Grafiksel Python paketi, şekil olarak da adlandırılan veri yapılarıyla temsil edilen grafiksel şekilleri (yani çizelgeler, çizimler, haritalar ve diyagramlar) oluşturmak, işlemek ve işlemek için mevcuttur.

deniz doğumu:

Seaborn, matplotlib tabanlı bir Python veri görselleştirme kütüphanesidir. Çekici ve bilgilendirici istatistiksel grafikler çizmek için üst düzey bir arayüz sağlar.

ipywidget'lar:

ipywidget'lar, Jupyter not defterleri, JupyterLab ve IPython çekirdeği için etkileşimli HTML widget'larıdır. Etkileşimli widget'lar kullanıldığında not defterleri canlanır.

Bu programı tamamen Google Colab Not Defteri'nde çalıştıracağımız için bu paketleri yüklemek gerekli değildir (bunu bu talimat boyunca ortak çalışma olarak tutalım).

3. Adım: Colab'ı Kullanmak için Sürücünüzü Ayarlama

Colab'ı Kullanmak için Sürücünüzü Ayarlama
Colab'ı Kullanmak için Sürücünüzü Ayarlama
Colab'ı Kullanmak için Sürücünüzü Ayarlama
Colab'ı Kullanmak için Sürücünüzü Ayarlama

Drive'ınızda, not defterleriniz için bir klasör oluşturun.

Teknik olarak konuşursak, Colab'da çalışmaya başlamak istiyorsanız bu adım tamamen gerekli değildir. Ancak Colab sürücünüzde çalıştığından, çalışmak istediğiniz klasörü belirtmek kötü bir fikir değildir. Bunu, Google Drive'ınıza gidip “Yeni”yi tıklayıp ardından yeni bir klasör oluşturarak yapabilirsiniz.

Daha sonra burada colabnotebook oluşturmayı seçebilir veya doğrudan colab'de çalışmaya başlayabilir ve colab çalışması için oluşturulan sürücüdeki klasörü bağlayabilirsiniz.

Bu iyi bir uygulamadır, aksi takdirde oluşturduğumuz ortak çalışma, sürücümüzde dağınık görünebilir.

4. Adım: Programa Genel Bakış

Bu programda/not defterinde COVID-19 için aşağıdakileri oluşturuyor olacağız:

  • Vaka Sayısına Göre Ülke Listesi
  • Bir Dünya Haritasındaki Toplam Vaka

Adım 5: COVID-19 Kontrol Paneli | Bölüm 1

COVID-19 Kontrol Paneli | Bölüm 1
COVID-19 Kontrol Paneli | Bölüm 1

Kodunuzu Python 2'den Python 3'e bugün taşımak için geleceği kullanabilirsiniz ve yine de Python 2'de çalışmasını sağlayabilirsiniz.

Zaten Python 3 kodunuz varsa, bunun yerine, neredeyse hiçbir ekstra çalışma olmadan Python 2 uyumluluğu sunmak için geleceği kullanabilirsiniz.

gelecek, standart kitaplık yeniden düzenlemesini (PEP 3108) çeşitli mekanizmalardan biri aracılığıyla destekler ve taşınan çoğu standart kitaplık modülüne Python 2'deki Python 3 adları ve konumları altında erişilmesine izin verir.

6. Adım: COVID-19 Kontrol Paneli | Bölüm 2

COVID-19 Kontrol Paneli | Bölüm 2
COVID-19 Kontrol Paneli | Bölüm 2

Etkileşim işlevi (ipywidgets.interact), kodu ve verileri etkileşimli olarak keşfetmek için otomatik olarak kullanıcı arabirimi (UI) kontrolleri oluşturur. IPython'un widget'larını kullanmaya başlamanın en kolay yolu budur.

7. Adım: COVID-19 Kontrol Paneli | 3. Bölüm

COVID-19 Kontrol Paneli | 3. Bölüm
COVID-19 Kontrol Paneli | 3. Bölüm

display_html, bir nesnenin HTML temsillerini görüntüler. Yani, _repr_html_ gibi kayıtlı görüntüleme yöntemlerini arar ve varsa sonucu görüntüleyerek bunları çağırır.

Adım 8: COVID-19 Kontrol Paneli | 4. Bölüm

COVID-19 Kontrol Paneli | 4. Bölüm
COVID-19 Kontrol Paneli | 4. Bölüm

Paketlerin listesi (2. adımda açıklandığı gibi) programa aktarılır.

9. Adım: COVID-19 Kontrol Paneli | Bölüm 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')

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

1. adımda açıklandığı gibi, verileri depodan.csv dosyası olarak okumak.

Adım 10: COVID-19 Kontrol Paneli | 6. Bölüm

COVID-19 Kontrol Paneli | 6. Bölüm
COVID-19 Kontrol Paneli | 6. Bölüm

df sütun adlarını küçük harfle yeniden adlandıracağız

11. Adım: COVID-19 Kontrol Paneli | 7. Bölüm

COVID-19 Kontrol Paneli | 7. Bölüm
COVID-19 Kontrol Paneli | 7. Bölüm

İl/eyaletten eyalete ve ülkeyi/bölgeden ülkeye değiştireceğiz

Adım 12: COVID-19 Kontrol Paneli | Bölüm 8

COVID-19 Kontrol Paneli | Bölüm 8
COVID-19 Kontrol Paneli | Bölüm 8

Toplam teyit edilen, ölüm ve iyileşen vaka sayısını hesaplayacağız.

Adım 13: COVID-19 Kontrol Paneli | 9. Bölüm

COVID-19 Kontrol Paneli | 9. Bölüm
COVID-19 Kontrol Paneli | 9. Bölüm
COVID-19 Kontrol Paneli | 9. Bölüm
COVID-19 Kontrol Paneli | 9. Bölüm

Aşağıdaki gibi daha önce 7. adımda belirli kitaplıkları içe aktardığımız için toplam istatistikleri HTML biçiminde görüntüleyeceğiz:

IPython.core.display'den içe aktarma ekranı, HTML

Adım 14: Vaka Sayısına Göre Ülkelerin (İlk 10) Listesi | COVID-19 Kontrol Paneli

Vaka Sayısına Göre Ülkeler(İlk 10) | COVID-19 Kontrol Paneli
Vaka Sayısına Göre Ülkeler(İlk 10) | COVID-19 Kontrol Paneli
Vaka Sayısına Göre Ülkeler(İlk 10) | COVID-19 Kontrol Paneli
Vaka Sayısına Göre Ülkeler(İlk 10) | COVID-19 Kontrol Paneli

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

FigureWidget işlevi, varsayılan x ve y eksenleriyle boş bir FigureWidget nesnesi döndürür. Jupyter etkileşimli pencere öğeleri, pencere öğelerinin nasıl yerleştirildiğini etkileyen bir dizi CSS özelliğini ortaya çıkaran bir düzen özelliğine sahiptir.

pd. Veri Çerçevesi

sonucun doldurulması için üç renkli arka plana sahip sözlük kullanarak veri çerçevesi oluşturur.

def show_latest_cases(TOP)

değerleri onaylanmış azalan düzende sıralar.

etkileşim(show_latest_cases, TOP='10')

Etkileşim işlevi (ipywidgets.interact), kodu ve verileri etkileşimli olarak keşfetmek için otomatik olarak kullanıcı arabirimi (UI) kontrolleri oluşturur.

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

sonucun görüntülenmesi için 2 piksel genişliğinde yeşil renkli çizgilerden oluşan bir kenarlık oluşturur.

Adım 15: Bir Dünya Haritasındaki Toplam Vaka | COVID-19 Kontrol Paneli

Dünya Haritasındaki Toplam Vaka | COVID-19 Kontrol Paneli
Dünya Haritasındaki Toplam Vaka | COVID-19 Kontrol Paneli
Dünya Haritasındaki Toplam Vaka | COVID-19 Kontrol Paneli
Dünya Haritasındaki Toplam Vaka | COVID-19 Kontrol Paneli

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

Folium, tüm işler arka uçta yapılırken sizi haritalayan bir Tanrı gibi gösteren bir araçtır. Broşür.js adlı bir araç için bir Python sarmalayıcıdır. Temelde minimum talimat veriyoruz, JS arka planda bir sürü iş yapıyor ve çok güzel haritalar elde ediyoruz. Harika bir şey. Anlaşılır olması açısından, harita teknik olarak 'Broşür Haritası' olarak adlandırılır. Bunları Python'da çağırmanıza izin veren araca 'Folium' denir.

Folium, Python'da manipüle edilen verileri etkileşimli bir Leaflet haritasında görselleştirmeyi kolaylaştırır. Hem verilerin choropleth görselleştirmeleri için bir haritaya bağlanmasını hem de Vincent/Vega görselleştirmelerini harita üzerinde işaretleyiciler olarak geçirmesini sağlar.

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

Bir for döngüsünde, tüm onaylanmış durumları step9 formülasyonundan alacağız.

folium. Circle

Yinelemeli olarak daireler eklemek için folium. Circle() kullanarak bir kabarcık haritası oluşturuyoruz.

konum=[confirmed_df.iloc['lat'], Confirm_df.iloc['uzun'],

5. adımdaki teyit edilmiş vakaların onaylanan_df'sinden, her bir konum/ülke verisine karşılık gelen enlem ve boylam değerlerini çıkarıyoruz.

yarıçap=(int((np.log(confirmed_df.iloc[i, -1]+1.00001)))+0.2)*50000,

ülkelerdeki dünya haritasında kabarcık dairelerini çizmek için yarıçap nesnesi oluşturma.

color='kırmızı', fill_color='indigo',

kabarcıklı dairenin ana hatlarını kırmızı, iç alanını çivit mavisi yapmak.

ve son olarak, araç ipucu nesnesini kullanarak çevreleri world_map üzerinde çizme.

Adım 16: Sonuç

Sonuç!
Sonuç!
Sonuç!
Sonuç!

Ek şunları gösterir:

  1. Vaka Sayısına Göre Ülke Listesi
  2. Bir Dünya Haritasındaki Toplam Vaka

Önerilen: