Используйте Python, чтобы нарисовать кривую и карту новой эпидемии коронарной пневмонии.

Python

Добро пожаловать, чтобы подписаться на публичный аккаунтанализ данных

1. Введение

В последнее время все сидят дома и ежедневно обращают внимание на данные об эпидемии, поэтому вопрос в том, как использовать python для сбора данных об эпидемиях, чтобы рисовать кривые эпидемии и карты?

2 Сбор данных

Во-первых, давайте выберем источник данных, взяв в качестве примера данные Tencent в реальном времени.Канал передачи данных Tencent об эпидемии в реальном времени

Благодаря анализу мы получаем такую ​​информацию, как URL-адрес, метод запроса, параметры и формат ответа, благодаря которым мы можем получить данные за считанные минуты.

Ежедневно собирайте подтвержденные данные, данные о подозрениях, смерти и лечении. Код выглядит следующим образом:

    url = 'https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts&callback=&_=%d'%int(time.time()*1000)
    data = json.loads(requests.get(url=url).json()['data'])

Чтобы зафиксировать совокупные диагностические данные по каждой провинции, код выглядит следующим образом:

    num={}
    url='https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=&_=%d'%int(time.time()*1000)
    url_data=json.loads(requests.get(url=url).json()['data'])
    for item in url_data['areaTree'][0]['children']:
        num.update({item['name'] : item['total']['confirm']})
        

3 Отображение данных

После получения ежедневных подтвержденных данных, данных о подозрениях, смерти и излечении используйте модуль Matplotlib, чтобы напрямую нарисовать кривую эпидемии.

   plt.subplot(211)
   plt.title('2019-nCoV confirm and suspect', fontsize=20)
   plt.plot(date_list, confirm_list, label='confirm')
   plt.plot(date_list, suspect_list, label='suspect')
   
   plt.subplot(212)
   plt.title('2019-nCoV Curve dead and heal', fontsize=20)
   plt.plot(date_list, dead_list, label='dead')
   plt.plot(date_list, heal_list, label='heal')

Рисование карты немного сложнее и требует набора инструментов Basemap и модуля Pyproj, который обрабатывает проекцию карты. Пожалуйста, установите необходимые модули самостоятельно.

Для рисования границы между морем и сушей, национальной границы и административной границы требуются данные Shape и библиотека векторных шрифтов simsun.tff, используемая для рисования.

Адрес исходного кода демо на Github, пожалуйста, дайте звезду, если вы найдете это полезным, спасибо!

Новая кривая эпидемии коронарной пневмонии 2019 г.

Новая карта эпидемии коронарной пневмонии 2019 г.