Coronavirus : Créer un tableau de bord pour suivre la propagation du coronavirus à l'aide de Dash

45

Cadre

Pour vous aider à comprendre les codes (vous pouvez trouver les codes sur app.py) rapidement, permettez-moi d'abord de déclarer la logique derrière eux. Généralement, le cadre (c'est-à-dire mon processus de réflexion) dans la construction de cette application de tableau de bord via suivi: Préparation des données -> Détermination de la disposition du tableau de bord -> Génération et insertion de contenu, malgré cela, vous pouvez constater que la troisième partie s'est produite avant la deuxième partie du code. C'est ainsi que Python lit les codes, pas nous. Gardez ce cadre à l'esprit et plongons-nous dans ces codes.

Collecte et nettoyage des données

De nombreuses sources fournissent des données en temps réel pour suivre la propagation du coronavirus (par exemple, recherchez «coronavirus» sur github, il existe 231 référentiels, figure 1). Quant à mon tableau de bord, je me suis conformé aux données de deux sources (à savoir Johns Hopkins CSSE et DingXiangYuan), où ils ont maintenu des numéros de cas précis et à jour pour cette urgence publique. Étant donné que les codes de cette partie sont assez simples, je ne donne ici que de brèves explications sur les points clés.

Figure 1 | Dépôts sur github sur le coronavirus

Tout d'abord, à ce stade, j'ai téléchargé et vérifié manuellement les données de ces deux sources et les ai stockées quotidiennement dans des fiches de données Excel. Alors que l'urgence se poursuit, le nombre de feuilles dans le fichier Excel augmente également. j'ai utilisé fonction (vous devez installer pour utiliser cette fonction) pour importer des feuilles en tant que trames de données séparées et les stocker dans un objet dictionnaire (c.-à-d. ). Je peux donc accéder aux données à partir de n'importe quelle date en utilisant la clé (c'est-à-dire ) du dictionnaire.

Lisez les fiches techniques Excel et stockez les données dans un dictionnaire

Deuxièmement, comme nous allons faire une carte de dispersion pour montrer la distribution des cas de coronavirus sur une carte globale, chaque emplacement doit être assigné avec des coordonnées. Ici, j'ai utilisé le service fourni par OpenCageGeocode pour appeler les coordonnées. Comme les limites d'utilisation (c'est-à-dire 2500 demandes d'API par jour), il n'est pas possible d'appeler de manière répétée les coordonnées de chaque emplacement dans chaque feuille. Nous avons juste besoin d'appeler les coordonnées pour les données de la dernière date (c.-à-d. ) et tracez les dernières données sur la carte.

Coordonnées d'appel à l'aide d'OpenCageGeocode

Composants et disposition du tableau de bord

Puisqu'il s'agit d'une application Web, il est inévitable de traiter des structures HTML pour la mise en page. Pas de panique, au lieu d’écrire HTML nous-mêmes, le tableau de bord nous fournit bibliothèque pour y faire face. Nous avons simplement besoin de composer la disposition à l'aide de structures Python. Notez que la mise en page peut être très complexe en combinant avec un fichier, cependant, nous nous en tiendrons à la disposition de base dans ce tableau de bord.

Tout d'abord, nous devons comprendre . Vous pouvez le considérer comme conteneur / section pour votre contenu. Comme le montre la figure 2, il y a quatre conteneurs (en fait cinq, y compris la note de bas de page) dans le tableau de bord. Plus précisément, dans le conteneur de titre, il a un titre (c.-à-d. ) et deux paragraphes (c.-à-d. ). Quant au conteneur de plaques d'immatriculation, il a quatre sous-conteneurs (c.-à-d. ), chaque sous-conteneur est composé d'un paragraphe (c.-à-d. ) et un titre (c.-à-d. ). C'est simple, non? Je crois que vous pouvez maintenant comprendre les conteneurs restants dans le code.