Índice:

Painel COVID19 no mapa mundial (usando Python): 16 etapas
Painel COVID19 no mapa mundial (usando Python): 16 etapas
Anonim
Painel COVID19 no mapa mundial (usando Python)
Painel COVID19 no mapa mundial (usando Python)

Sei que quase todos nós sabemos a maioria das informações sobre COVID19.

E isso instrutível é sobre como criar um mapa de bolhas, para traçar os dados em tempo real (de casos) no mapa mundial.

Para maior comodidade, adicionei o programa ao repositório Github:

github.com/backshell/COVID19dashboard

Suprimentos

Não há suprimentos necessários e faríamos todo o programa de computador por meio do GoogleColab Notebook. Portanto, uma conta do gmail deve ser suficiente para começar.

Colab Notebooks / Colaboratory é um projeto de pesquisa do Google criado para ajudar a disseminar a educação e a pesquisa em aprendizado de máquina. É um ambiente de notebook Jupyter que não requer configuração para uso e é executado inteiramente na nuvem.

E NÃO requer instalação em sua máquina.

Etapa 1: Compreendendo o processo de back-end (banco de dados)

A maioria dos programas de software busca dados do back-end e o resultante é formatado e publicado no front-end. E para este programa específico, exigiríamos dados reais COVID19.

O G. W. C. A Whiting School of Engineering tem publicado as estatísticas COVID19 por meio de sua conta no github:

github.com/CSSEGISandData

Do início até a data, as estatísticas COVID19 por país são publicadas no repositório.

Portanto, usaríamos os arquivos formatados. CSV deles (segmentados por linha de países) e plotaríamos os dados no mapa mundial.

Etapa 2: Pacotes / bibliotecas Python usados no programa

Abaixo está a lista de pacotes e bibliotecas Python que usaríamos. Deixe-me dar uma visão geral do propósito de cada um deles.

entorpecido:

NumPy é uma biblioteca para a linguagem de programação Python, adicionando suporte para matrizes e arrays multidimensionais grandes, junto com uma grande coleção de funções matemáticas de alto nível para operar nesses arrays.

pandas:

pandas é uma biblioteca de software escrita para a linguagem de programação Python para manipulação e análise de dados.

matplotlib.pyplot:

pyplot destina-se principalmente a plotagens interativas e casos simples de geração de plotagem programática

plotly.express:

Plotly Express é uma nova biblioteca de visualização Python de alto nível. Sintaxe simples para gráficos complexos.

folium:

folium facilita a visualização de dados que foram manipulados em Python em um mapa de folheto interativo.

plotly.graph_objects:

O pacote Python plotly existe para criar, manipular e renderizar figuras gráficas (ou seja, gráficos, plotagens, mapas e diagramas) representadas por estruturas de dados também chamadas de figuras.

nascido do mar:

Seaborn é uma biblioteca de visualização de dados Python baseada em matplotlib. Ele fornece uma interface de alto nível para desenhar gráficos estatísticos atraentes e informativos.

ipywidgets:

ipywidgets são widgets HTML interativos para notebooks Jupyter, JupyterLab e o kernel IPython. Notebooks ganham vida quando widgets interativos são usados.

A instalação desses pacotes não é necessária, pois estaríamos trabalhando este programa inteiramente no Google Colab Notebook (vamos mantê-lo como colab ao longo deste manual).

Etapa 3: Configurando seu disco para usar o Colab

Configurando seu disco para usar o Colab
Configurando seu disco para usar o Colab
Configurando seu disco para usar o Colab
Configurando seu disco para usar o Colab

Em seu Drive, crie uma pasta para seus blocos de notas.

Tecnicamente falando, esta etapa não é totalmente necessária se você deseja apenas começar a trabalhar no Colab. No entanto, como o Colab está trabalhando fora de sua unidade, não é uma má ideia especificar a pasta onde você deseja trabalhar. Você pode fazer isso acessando o Google Drive e clicando em “Novo” e, em seguida, criando uma nova pasta.

Então você pode escolher criar colabnotebook aqui ou começar a trabalhar diretamente no colab e vincular a pasta no drive, que é criada para o colab work.

Esta é uma boa prática, caso contrário, mais a colab que criamos pode parecer confusa em nossa unidade.

Etapa 4: Visão geral do programa

Neste programa / bloco de notas, estaríamos criando o seguinte para COVID-19:

  • Lista de países pelo número de casos
  • Total de casos em um mapa mundial

Etapa 5: Painel COVID-19 | Parte 1

Painel COVID-19 | Parte 1
Painel COVID-19 | Parte 1

Você pode usar o future para ajudar a portar seu código do Python 2 para o Python 3 hoje - e ainda executá-lo no Python 2.

Se você já tem o código do Python 3, pode usar o future para oferecer compatibilidade com o Python 2 quase sem trabalho extra.

Future suporta a reorganização da biblioteca padrão (PEP 3108) por meio de um dos vários mecanismos, permitindo que a maioria dos módulos de biblioteca padrão movidos sejam acessados sob seus nomes Python 3 e locais no Python 2.

Etapa 6: Painel COVID-19 | Parte 2

Painel COVID-19 | Parte 2
Painel COVID-19 | Parte 2

A função interact (ipywidgets.interact) cria automaticamente controles de interface de usuário (UI) para explorar código e dados interativamente. É a maneira mais fácil de começar a usar os widgets do IPython.

Etapa 7: Painel COVID-19 | Parte 3

Painel COVID-19 | Parte 3
Painel COVID-19 | Parte 3

display_html exibe as representações HTML de um objeto. Ou seja, ele procura métodos de exibição registrados, como _repr_html_, e os chama, exibindo o resultado, se houver.

Etapa 8: Painel COVID-19 | Parte 4

Painel COVID-19 | Parte 4
Painel COVID-19 | Parte 4

A lista de pacotes (conforme explicado na etapa 2) é importada para o programa.

Etapa 9: Painel COVID-19 | Parte 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')

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

Conforme explicado na etapa 1, ler os dados como arquivo.csv do repositório.

Etapa 10: Painel COVID-19 | Parte 6

Painel COVID-19 | Parte 6
Painel COVID-19 | Parte 6

Vamos renomear os nomes das colunas df para minúsculas

Etapa 11: Painel COVID-19 | Parte 7

Painel COVID-19 | Parte 7
Painel COVID-19 | Parte 7

Devemos mudar a província / estado para estado e país / região para país

Etapa 12: Painel COVID-19 | Parte 8

Painel COVID-19 | Parte 8
Painel COVID-19 | Parte 8

Vamos computar o número total de casos confirmados, óbitos e recuperados.

Etapa 13: Painel COVID-19 | Parte 9

Painel COVID-19 | Parte 9
Painel COVID-19 | Parte 9
Painel COVID-19 | Parte 9
Painel COVID-19 | Parte 9

Exibiremos as estatísticas totais em formato HTML, pois importamos bibliotecas específicas na etapa 7 anterior, conforme abaixo:

from IPython.core.display import display, HTML

Etapa 14: Lista de países (Top10) pelo número de casos | Painel COVID-19

Lista de países (Top10) por número de casos | Painel COVID-19
Lista de países (Top10) por número de casos | Painel COVID-19
Lista de países (Top10) por número de casos | Painel COVID-19
Lista de países (Top10) por número de casos | Painel COVID-19

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

A função FigureWidget retorna um objeto FigureWidget vazio com eixos xey padrão. Os widgets interativos Jupyter têm um atributo de layout que expõe várias propriedades CSS que afetam como os widgets são dispostos.

pd. DataFrame

cria dataframe usando dicionário, com três fundos de cores para o resultante preencher.

def show_latest_cases (TOP)

classifica os valores por ordem decrescente confirmada.

interagir (show_latest_cases, TOP = '10 ')

A função interact (ipywidgets.interact) cria automaticamente controles de interface de usuário (UI) para explorar código e dados interativamente.

ipywLayout = widgets. Layout (border = 'sólido 2px verde')

cria uma borda com linhas de largura de 2px de cor verde, para que a resultante seja exibida.

Etapa 15: Total de casos em um mapa mundial | Painel COVID-19

Total de casos em um mapa mundial | Painel COVID-19
Total de casos em um mapa mundial | Painel COVID-19
Total de casos em um mapa mundial | Painel COVID-19
Total de casos em um mapa mundial | Painel COVID-19

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

Folium é uma ferramenta que faz você parecer um Deus do mapeamento enquanto todo o trabalho é feito no back end. É um wrapper Python para uma ferramenta chamada leaflet.js. Basicamente, damos a ele instruções mínimas, JS faz um monte de trabalho em segundo plano e obtemos alguns mapas muito, muito legais. É ótimo. Para maior clareza, o mapa é tecnicamente chamado de 'Mapa de Folheto'. A ferramenta que permite chamá-los em Python se chama 'Folium'.

O Folium facilita a visualização de dados que foram manipulados em Python em um mapa interativo de folheto. Ele permite a vinculação de dados a um mapa para visualizações de coropletos, bem como a passagem de visualizações de Vincent / Vega como marcadores no mapa.

para i no intervalo (0, len (confirmado_df))

Em um loop for, obteremos todos os casos confirmados da formulação da etapa 9.

folium. Circle

Criamos um mapa de bolhas usando folium. Circle () para adicionar círculos iterativamente.

local = [confirmado_df.iloc ['lat'], confirmado_df.iloc ['longo'], do confirmado_df de casos confirmados da etapa 5, extraímos os valores de latitude e longitude correspondentes aos dados de cada local / país.

raio = (int ((np.log (confirmado_df.iloc [i, -1] +1,00001))) + 0,2) * 50000, criando objeto de raio para traçar os círculos de bolha no mapa mundial em todos os países.

color = 'red', fill_color = 'indigo', fazendo com que o contorno do círculo da bolha fique vermelho e a área interna como índigo.

e, finalmente, plotando os círculos no world_map usando o objeto de dica de ferramenta.

Etapa 16: O resultado

O resultado!
O resultado!
O resultado!
O resultado!

Anexo mostra:

  1. Lista de países pelo número de casos
  2. Total de casos em um mapa mundial

Recomendado: