Мазмуну:

Дүйнөлүк картадагы COVID19 тактасы (Python аркылуу): 16 кадам
Дүйнөлүк картадагы COVID19 тактасы (Python аркылуу): 16 кадам

Video: Дүйнөлүк картадагы COVID19 тактасы (Python аркылуу): 16 кадам

Video: Дүйнөлүк картадагы COVID19 тактасы (Python аркылуу): 16 кадам
Video: ❗️Кыргызстан пандемияда өтө чоң жоготууга учурады 2024, Ноябрь
Anonim
Дүйнөлүк картадагы COVID19 тактасы (Python менен)
Дүйнөлүк картадагы COVID19 тактасы (Python менен)

Мен билем, дээрлик бардыгыбыз COVID19 жөнүндө көпчүлүк маалыматты билебиз.

Жана бул көрсөтмө көбүк картасын түзүү жөнүндө, реалдуу убакытта (учурлардын) дүйнөлүк картага түшүрүү.

Көбүрөөк ыңгайлуулук үчүн, мен программаны Github репозиторийине коштум:

github.com/backshell/COVID19dashboard

Жабдуулар

Эч кандай жабдыктар талап кылынбайт жана биз компьютер программасын GoogleColab блокноту аркылуу жасайбыз. Ошентип, баштоо үчүн Gmail каттоо эсеби жетиштүү болушу керек.

Colab Notebooks / Colaboratory - бул машинаны үйрөнүү жана изилдөө иштерин жайылтуу үчүн түзүлгөн Google изилдөө долбоору. Бул Jupyter блокнотунун чөйрөсү, ал эч кандай орнотууну талап кылбайт жана толугу менен булутта иштейт.

Жана машинаңызда орнотуу талап кылынбайт.

1 -кадам: Backend процессин түшүнүү (маалымат базасы)

Ар бир программалык камсыздоонун көбү тылдан маалыматтарды алып турат жана натыйжасы форматталып, алдыңкы бөлүгүнө жарыяланат. Бул программа үчүн биз COVID19 реалдуу маалыматын талап кылмакпыз.

G. W. C. Уайтинг инженердик мектеби COVID19 статистикасын өзүнүн github эсеби аркылуу жарыялап келет:

github.com/CSSEGISandData

Башынан ушул күнгө чейин репозиторийде COVID19 өлкөсүнүн акылдуу статистикасы жарыяланат.

Ошентип, биз алардын. CSV форматталган файлдарын колдонобуз (өлкөлөрдүн катарына жараша бөлүштүрүлгөн) жана маалыматтарды дүйнөлүк картага түшүрөбүз.

2 -кадам: Программада колдонулган Python пакеттери/китепканалары

Төмөндө биз колдоно турган python пакеттеринин жана китепканаларынын тизмеси келтирилген. Алардын ар биринин максаты тууралуу кыскача маалымат берейин.

numpy:

NumPy-бул Python программалоо тили үчүн китепкана, бул массивдерде иштөө үчүн чоң, көп өлчөмдүү массивдерди жана матрицаларды, жогорку деңгээлдеги математикалык функциялардын чоң жыйнагын кошот.

панда:

pandas - бул Python программалоо тили үчүн жазылган манипуляция жана анализ үчүн жазылган программалык китепкана.

matplotlib.pyplot:

pyplot негизинен интерактивдүү сюжеттерге жана программалык сюжеттин генерациясынын жөнөкөй учурларына арналган

plotly.express:

Plotly Express-бул жаңы деңгээлдеги Python визуалдаштыруу китепканасы. Татаал диаграммалар үчүн жөнөкөй синтаксис.

фолиум:

folium интерактивдүү баракча картасында Pythonдо иштетилген маалыматтарды элестетүүнү жеңилдетет.

plotly.graph_objects:

Python сюжеттик пакети графикалык фигураларды (б.а. диаграммаларды, сюжеттерди, карталарды жана диаграммаларды) түзүү, иштетүү жана көрсөтүү үчүн бар, ошондой эле фигуралар деп да аталат.

деңиздин төрөлүшү:

Seaborn - бул матплотлибге негизделген Python маалыматтарды визуалдаштыруу китепканасы. Бул жагымдуу жана маалыматтуу статистикалык графиканы тартуу үчүн жогорку деңгээлдеги интерфейсти камсыздайт.

ipywidgets:

ipywidgets - бул Jupyter дептерлери, JupyterLab жана IPython ядросу үчүн интерактивдүү HTML виджеттери. Ноутбуктар интерактивдүү виджеттер колдонулганда жанданат.

Бул пакеттерди орнотуу талап кылынбайт, анткени биз бул программаны толугу менен Google Colab блокнотунда иштете турган болчубуз (бул нускама боюнча колаб катары сактоого мүмкүндүк берет).

3 -кадам: Дискиңизди орнотуу, Colab колдонуу үчүн

Колабды колдонуу үчүн сиздин дискиңизди орнотуу
Колабды колдонуу үчүн сиздин дискиңизди орнотуу
Колабды колдонуу үчүн сиздин дискиңизди орнотуу
Колабды колдонуу үчүн сиздин дискиңизди орнотуу

Сиздин Drive, дептер үчүн папканы түзүү.

Техникалык жактан айтканда, эгер сиз Colabда иштей баштасаңыз, бул кадамдын кереги жок. Бирок, Colab сиздин дисктен иштеп жаткандыктан, иштегиңиз келген папканы көрсөтүү жаман эмес. Сиз муну Google Drive'ыңызга барып, "Жаңы" баскычын чыкылдатып, анан жаңы папка түзүү менен жасай аласыз.

Андан кийин бул жерде colabnotebook түзүүнү тандасаңыз болот же colabда түз иштей баштасаңыз жана colab иштөө үчүн түзүлгөн папканы дискке шилтемелесеңиз болот.

Бул жакшы практика, антпесе биз түзгөн колаб биздин дискте башаламан көрүнүшү мүмкүн.

4 -кадам: Программаны карап чыгуу

Бул программада/дептерде биз COVID-19 үчүн төмөнкүлөрдү түзмөкпүз:

  • Иштердин саны боюнча өлкөлөрдүн тизмеси
  • Дүйнө картасындагы жалпы иштер

5-кадам: COVID-19 тактасы | 1-бөлүк

COVID-19 тактасы | 1-бөлүк
COVID-19 тактасы | 1-бөлүк

Сиз кодуңузду Python 2ден Python 3кө жеткирүүгө жардам берүү үчүн келечекти колдонсоңуз болот жана дагы эле Python 2де иштейт.

Эгерде сизде мурунтан эле Python 3 коду болсо, анын ордуна келечекти колдонуп, Python 2ге шайкештигин дээрлик эч кандай кошумча жумуш менен камсыз кыла албайсыз.

келечек стандарттык китепкана модулдарын Python 3 аттары жана Python 2деги жайгашкан жери боюнча жетүүгө мүмкүндүк берүүчү, бир нече механизмдердин бири аркылуу китепкананын стандарттык кайра түзүлүшүн (PEP 3108) колдойт.

6-кадам: COVID-19 тактасы | 2 бөлүк

COVID-19 тактасы | 2 бөлүк
COVID-19 тактасы | 2 бөлүк

Өз ара аракеттенүү функциясы (ipywidgets.interact) кодду жана маалыматтарды интерактивдүү изилдөө үчүн автоматтык түрдө колдонуучу интерфейсин (UI) башкарат. Бул IPython виджеттерин колдонууну баштоонун эң оңой жолу.

7-кадам: COVID-19 тактасы | 3 -бөлүк

COVID-19 тактасы | 3 -бөлүк
COVID-19 тактасы | 3 -бөлүк

display_html объектинин HTML өкүлчүлүктөрүн көрсөтөт. Башкача айтканда, _repr_html_ сыяктуу катталган дисплей ыкмаларын издейт жана эгер бар болсо, жыйынтыгын көрсөтүп, аларды чакырат.

8-кадам: COVID-19 тактасы | 4 -бөлүк

COVID-19 тактасы | 4 -бөлүк
COVID-19 тактасы | 4 -бөлүк

Пакеттердин тизмеси (2 -кадамда түшүндүрүлгөндөй) программага импорттолот.

9-кадам: COVID-19 тактасы | 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')

тастыкталган_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')

Step1де түшүндүрүлгөндөй, маалыматтарды репозиторийден.csv файлы катары окуу.

10-кадам: COVID-19 тактасы | 6 -бөлүк

COVID-19 тактасы | 6 -бөлүк
COVID-19 тактасы | 6 -бөлүк

Биз df тилкесинин аталыштарын кичине кылып өзгөртөбүз

11-кадам: COVID-19 тактасы | 7 -бөлүк

COVID-19 тактасы | 7 -бөлүк
COVID-19 тактасы | 7 -бөлүк

Биз провинцияны/штатты штатка, өлкөнү/аймакты өлкөгө алмаштырабыз

12-кадам: COVID-19 тактасы | 8 -бөлүк

COVID-19 тактасы | 8 -бөлүк
COVID-19 тактасы | 8 -бөлүк

Биз тастыкталган, өлүм жана айыгып кеткен учурлардын жалпы санын эсептейбиз.

13-кадам: COVID-19 тактасы | 9 -бөлүк

COVID-19 тактасы | 9 -бөлүк
COVID-19 тактасы | 9 -бөлүк
COVID-19 тактасы | 9 -бөлүк
COVID-19 тактасы | 9 -бөлүк

Биз жалпы статистиканы HTML форматында көрсөтөбүз, анткени биз 7 -кадамда белгилүү китепканаларды төмөндөгүдөй импорттогонбуз:

IPython.core.display импорттук дисплейден, HTML

14 -кадам: Иштердин саны боюнча өлкөлөрдүн тизмеси (Top10) | COVID-19 тактасы

Иштердин саны боюнча өлкөлөрдүн тизмеси (Top10) | COVID-19 тактасы
Иштердин саны боюнча өлкөлөрдүн тизмеси (Top10) | COVID-19 тактасы
Иштердин саны боюнча өлкөлөрдүн тизмеси (Top10) | COVID-19 тактасы
Иштердин саны боюнча өлкөлөрдүн тизмеси (Top10) | COVID-19 тактасы

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

FigureWidget функциясы демейки x жана y огу бар бош FigureWidget объектин кайтарат. Jupyter интерактивдүү виджеттеринде виджеттердин жайгашуусуна таасир этүүчү CSSтин көптөгөн касиеттерин ачып көрсөтүүчү макет атрибуту бар.

pd. DataFrame

Натыйжада толтуруу үчүн үч түстүү фон менен сөздүктү колдонуп, маалыматтык алкакты түзөт.

def show_latest_cases (TOP)

баалуулуктарды ырасталган азайуу тартиби боюнча иреттейт.

өз ара аракеттенүү (show_latest_cases, TOP = '10 ')

Өз ара аракеттенүү функциясы (ipywidgets.interact) кодду жана маалыматтарды интерактивдүү изилдөө үчүн автоматтык түрдө колдонуучу интерфейсин (UI) башкарат.

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

2px туурасы жашыл түстөгү чектерди түзөт, натыйжада дисплейге көрсөтүлөт.

15 -кадам: Дүйнөлүк карта боюнча жалпы иштер | COVID-19 тактасы

Дүйнө картасындагы жалпы иштер | COVID-19 тактасы
Дүйнө картасындагы жалпы иштер | COVID-19 тактасы
Дүйнө картасындагы жалпы иштер | COVID-19 тактасы
Дүйнө картасындагы жалпы иштер | COVID-19 тактасы

world_map = folium. Map (жайгашуу = [11, 0], плиткалар = "cartodbpositron", zoom_start = 2, max_zoom = 6, min_zoom = 2)

Folium - бул сизди картага түшүрүүчү Кудайга окшоштуруучу курал, ал эми бардык иштер арткы бөлүктө аткарылат. Биз негизинен ага минималдуу көрсөтмөлөрдү беребиз, JS фондо көп жумуштарды аткарат жана биз абдан сонун карталарды алабыз. Бул сонун нерселер. Түшүнүктүү болушу үчүн карта техникалык жактан "Баракча картасы" деп аталат. Аларды Pythonдо чакырган куралыбыз "Folium" деп аталат.

Folium баракчанын интерактивдүү картасында Pythonдо иштетилген маалыматтарды элестетүүнү жеңилдетет. Бул маалыматты каропага көргөзмө үчүн милдеттүү түрдө кошууга, ошондой эле картада маркер катары Винсент/Вега элестетүүлөрүн өткөрүүгө мүмкүнчүлүк берет.

i үчүн диапазондо (0, len (confirm_df))

For циклинде, биз тастыкталган бардык учурларды 9 -кадамдын формулировкасынан алабыз.

тегерек

Биз тегеректерди кайталап кошуу үчүн folium. Circle () аркылуу көбүк картасын түзөбүз.

жайгашкан = [тастыкталган_df.iloc ['лат'], тастыкталган_df.iloc ['узун'], 5 -кадамдагы тастыкталган учурлардын тастыкталган_df'инен, биз ар бир жайгашкан/өлкөнүн маалыматтарына туура келген кеңдик жана узундук маанилерин чыгарып алабыз.

радиус = (int ((np.log (confirm_df.iloc [i, -1] +1.00001)))+0.2)*50000, өлкөлөр боюнча дүйнөлүк картада көбүкчөлөрдүн тегерекчелерин түзүү үчүн радиустук объектини түзүү.

түс = 'кызыл', fill_color = 'индиго', көбүктүн тегерегинин контурун кызыл, ички аймакты индиго кылып жасоо.

жана акырында tooltip объектисин колдонуп, world_map боюнча чөйрөлөрдү пландаштыруу.

16 -кадам: Жыйынтык

Жыйынтык!
Жыйынтык!
Жыйынтык!
Жыйынтык!

Тиркеме көрсөтөт:

  1. Иштердин саны боюнча өлкөлөрдүн тизмеси
  2. Дүйнө картасындагы жалпы иштер

Сунушталууда: