Table des matières:

Tableau de bord COVID19 sur la carte du monde (en utilisant Python) : 16 étapes
Tableau de bord COVID19 sur la carte du monde (en utilisant Python) : 16 étapes

Vidéo: Tableau de bord COVID19 sur la carte du monde (en utilisant Python) : 16 étapes

Vidéo: Tableau de bord COVID19 sur la carte du monde (en utilisant Python) : 16 étapes
Vidéo: Big Data Training, 15.06.21, FR 2024, Juillet
Anonim
Tableau de bord COVID19 sur la carte du monde (en utilisant Python)
Tableau de bord COVID19 sur la carte du monde (en utilisant Python)

Je sais que nous connaissons presque tous la plupart des informations sur COVID19.

Et cette instructable concerne la création d'une carte à bulles, pour tracer les données en temps réel (des cas) sur la carte du monde.

Pour plus de commodité, j'ai ajouté le programme au référentiel Github:

github.com/backshell/COVID19dashboard

Fournitures

Il n'y a pas de fournitures requises en tant que telles et nous ferions tout le programme informatique via GoogleColab Notebook. Un compte gmail devrait donc suffire pour commencer.

Colab Notebooks / Colaboratory est un projet de recherche Google créé pour aider à diffuser l'enseignement et la recherche en apprentissage automatique. Il s'agit d'un environnement de notebook Jupyter qui ne nécessite aucune configuration pour être utilisé et qui s'exécute entièrement dans le cloud.

Et AUCUNE installation requise dans votre machine.

Étape 1: Comprendre le processus principal (base de données)

La plupart des logiciels récupèrent les données du backend et le résultat est formaté et publié sur le front-end. Et pour ce programme particulier, nous aurions besoin de données réelles COVID19.

Le G. W. C. Whiting School of Engineering a publié les statistiques COVID19 via son compte github:

github.com/CSSEGISandData

Du début à la date, les statistiques par pays COVID19 sont publiées dans le référentiel.

Nous utiliserions donc leurs fichiers au format. CSV (segmentés par ligne de pays) et tracerions les données sur la carte du monde.

Étape 2: Paquets/bibliothèques Python utilisés dans le programme

Vous trouverez ci-dessous la liste des packages et des bibliothèques python que nous utiliserions. Permettez-moi de donner un aperçu de l'objectif de chacun d'eux.

numpy:

NumPy est une bibliothèque pour le langage de programmation Python, ajoutant la prise en charge de grands tableaux et matrices multidimensionnels, ainsi qu'une vaste collection de fonctions mathématiques de haut niveau pour opérer sur ces tableaux.

panda:

pandas est une bibliothèque logicielle écrite pour le langage de programmation Python pour la manipulation et l'analyse de données.

matplotlib.pyplot:

pyplot est principalement destiné aux tracés interactifs et aux cas simples de génération de tracés programmatiques

plotly.express:

Plotly Express est une nouvelle bibliothèque de visualisation Python de haut niveau. Syntaxe simple pour les graphiques complexes.

folium:

folium facilite la visualisation des données qui ont été manipulées en Python sur une carte de brochure interactive.

plotly.graph_objects:

Le package plotly Python existe pour créer, manipuler et rendre des figures graphiques (c'est-à-dire des graphiques, des tracés, des cartes et des diagrammes) représentées par des structures de données également appelées figures.

né en mer:

Seaborn est une bibliothèque de visualisation de données Python basée sur matplotlib. Il fournit une interface de haut niveau pour dessiner des graphiques statistiques attrayants et informatifs.

ipywidgets:

Les ipywidgets sont des widgets HTML interactifs pour les notebooks Jupyter, JupyterLab et le noyau IPython. Les blocs-notes prennent vie lorsque des widgets interactifs sont utilisés.

L'installation de ces packages n'est pas requise car nous travaillerions entièrement sur ce programme dans Google Colab Notebook (gardons-le en tant que colab tout au long de cette instructable).

Étape 3: Configuration de votre lecteur pour utiliser Colab

Configurer votre Drive pour utiliser Colab
Configurer votre Drive pour utiliser Colab
Configurer votre Drive pour utiliser Colab
Configurer votre Drive pour utiliser Colab

Dans votre Drive, créez un dossier pour vos blocs-notes.

Techniquement parlant, cette étape n'est pas totalement nécessaire si vous souhaitez simplement commencer à travailler dans Colab. Cependant, étant donné que Colab fonctionne à partir de votre lecteur, ce n'est pas une mauvaise idée de spécifier le dossier dans lequel vous souhaitez travailler. Vous pouvez le faire en accédant à votre Google Drive et en cliquant sur "Nouveau", puis en créant un nouveau dossier.

Ensuite, vous pouvez choisir de créer colabnotebook ici ou de commencer à travailler directement dans colab et de lier le dossier dans le lecteur, qui est créé pour le travail en colab.

C'est une bonne pratique, sinon plus le colab que nous créons peut sembler désordonné dans notre lecteur.

Étape 4: Aperçu du programme

Dans ce programme/carnet, nous créerions les éléments suivants pour COVID-19:

  • Liste des pays par le nombre de cas
  • Nombre total de cas sur une carte du monde

Étape 5: Tableau de bord COVID-19 | Partie 1

Tableau de bord COVID-19 | Partie 1
Tableau de bord COVID-19 | Partie 1

Vous pouvez utiliser future pour aider à porter votre code de Python 2 à Python 3 aujourd'hui - et le faire fonctionner toujours sur Python 2.

Si vous avez déjà du code Python 3, vous pouvez utiliser future pour offrir la compatibilité Python 2 avec presque aucun travail supplémentaire.

future prend en charge la réorganisation de la bibliothèque standard (PEP 3108) via l'un des nombreux mécanismes, permettant d'accéder à la plupart des modules de bibliothèque standard déplacés sous leurs noms et emplacements Python 3 dans Python 2.

Étape 6: Tableau de bord COVID-19 | Partie 2

Tableau de bord COVID-19 | Partie 2
Tableau de bord COVID-19 | Partie 2

La fonction d'interaction (ipywidgets.interact) crée automatiquement des contrôles d'interface utilisateur (UI) pour explorer le code et les données de manière interactive. C'est le moyen le plus simple de commencer à utiliser les widgets IPython.

Étape 7: Tableau de bord COVID-19 | Partie 3

Tableau de bord COVID-19 | Partie 3
Tableau de bord COVID-19 | Partie 3

display_html affiche les représentations HTML d'un objet. C'est-à-dire qu'il recherche les méthodes d'affichage enregistrées, telles que _repr_html_, et les appelle, affichant le résultat, le cas échéant.

Étape 8: Tableau de bord COVID-19 | Partie 4

Tableau de bord COVID-19 | Partie 4
Tableau de bord COVID-19 | Partie 4

La liste des packages (comme expliqué à l'étape 2) est importée dans le programme.

Étape 9: Tableau de bord COVID-19 | Partie 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')

récupéré_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')

Comme expliqué à l'étape 1, lecture des données sous forme de fichier.csv à partir du référentiel.

Étape 10: Tableau de bord COVID-19 | Partie 6

Tableau de bord COVID-19 | Partie 6
Tableau de bord COVID-19 | Partie 6

Nous allons renommer les noms des colonnes df en minuscules

Étape 11: Tableau de bord COVID-19 | Partie 7

Tableau de bord COVID-19 | Partie 7
Tableau de bord COVID-19 | Partie 7

Nous allons changer la province/état en état et pays/région en pays

Étape 12: Tableau de bord COVID-19 | Partie 8

Tableau de bord COVID-19 | Partie 8
Tableau de bord COVID-19 | Partie 8

Nous calculerons le nombre total de cas confirmés, de décès et de guérison.

Étape 13: Tableau de bord COVID-19 | Partie 9

Tableau de bord COVID-19 | Partie 9
Tableau de bord COVID-19 | Partie 9
Tableau de bord COVID-19 | Partie 9
Tableau de bord COVID-19 | Partie 9

Nous afficherons les statistiques totales au format HTML, car nous avons importé des bibliothèques spécifiques à l'étape 7 comme ci-dessous:

à partir de l'affichage d'importation IPython.core.display, HTML

Étape 14: Liste des pays (Top10) par nombre de cas | Tableau de bord COVID-19

Liste des pays (Top10) par nombre de cas | Tableau de bord COVID-19
Liste des pays (Top10) par nombre de cas | Tableau de bord COVID-19
Liste des pays (Top10) par nombre de cas | Tableau de bord COVID-19
Liste des pays (Top10) par nombre de cas | Tableau de bord COVID-19

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

La fonction FigureWidget renvoie un objet FigureWidget vide avec les axes x et y par défaut. Les widgets interactifs Jupyter ont un attribut de mise en page exposant un certain nombre de propriétés CSS qui ont un impact sur la façon dont les widgets sont mis en page.

pd. DataFrame

crée une trame de données à l'aide d'un dictionnaire, avec trois arrière-plans de couleur à remplir par le résultat.

def show_latest_cases (TOP)

trie les valeurs par ordre décroissant confirmé.

interagir(show_latest_cases, TOP='10')

La fonction d'interaction (ipywidgets.interact) crée automatiquement des contrôles d'interface utilisateur (UI) pour explorer le code et les données de manière interactive.

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

crée une bordure avec des lignes de 2px de largeur de couleur verte, pour que le résultat s'affiche.

Étape 15: Nombre total de cas sur une carte du monde | Tableau de bord COVID-19

Total des cas sur une carte du monde | Tableau de bord COVID-19
Total des cas sur une carte du monde | Tableau de bord COVID-19
Total des cas sur une carte du monde | Tableau de bord COVID-19
Total des cas sur une carte du monde | Tableau de bord COVID-19

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

Folium est un outil qui vous fait ressembler à un dieu de la cartographie alors que tout le travail est effectué en arrière-plan. C'est un wrapper Python pour un outil appelé brochure.js. Nous lui donnons essentiellement des instructions minimales, JS fait beaucoup de travail en arrière-plan et nous obtenons des cartes très, très cool. C'est super. Pour plus de clarté, la carte s'appelle techniquement une « carte dépliante ». L'outil qui vous permet de les appeler en Python s'appelle 'Folium'.

Folium facilite la visualisation des données qui ont été manipulées en Python sur une carte Leaflet interactive. Il permet à la fois de lier des données à une carte pour les visualisations choroplèthes ainsi que de passer des visualisations Vincent/Vega comme marqueurs sur la carte.

pour i dans la plage (0, len (confirmed_df))

Dans une boucle for, nous obtiendrons tous les cas confirmés de la formulation step9.

folium. Cercle

Nous créons une carte à bulles en utilisant folium. Circle() pour ajouter des cercles de manière itérative.

location=[confirmed_df.iloc['lat'], confirmé_df.iloc['long'], à partir du fichier confirmé_df des cas confirmés de l'étape 5, nous extrayons les valeurs de latitude et de longitude correspondant à chaque donnée de lieu/pays.

radius=(int((np.log(confirmed_df.iloc[i, -1]+1.00001)))+0.2)*50000, création d'un objet rayon pour tracer les cercles de bulles sur la carte du monde à travers les pays.

color='rouge', fill_color='indigo', rendre le contour du cercle de bulles en rouge et la zone intérieure en indigo.

et enfin tracer les cercles sur la world_map à l'aide de l'objet tooltip.

Étape 16: Le résultat

Le résultat!
Le résultat!
Le résultat!
Le résultat!

La pièce jointe montre:

  1. Liste des pays par le nombre de cas
  2. Nombre total de cas sur une carte du monde

Conseillé: