Analyse graphique de la dynamique epidemique du COVID-19 en France

In [1]:
%load_ext autoreload
%autoreload 2
In [2]:
import pandas as pd
from matplotlib import pyplot as plt
import requests
In [3]:
from viz import *

Donnees de DataAgainst Covid-19

[github.com/opencovid19-fr/data]

In [4]:
file_name = 'opencovid19-fr-chiffres-cles.csv'
url = 'https://raw.githubusercontent.com/opencovid19-fr/data/master/dist/chiffres-cles.csv'
myfile = requests.get(url)
open(file_name, 'wb').write(myfile.content)
Out[4]:
3439255
In [5]:
data = pd.read_csv('opencovid19-fr-chiffres-cles.csv')
In [6]:
data.tail()
Out[6]:
date granularite maille_code maille_nom cas_confirmes cas_ehpad cas_confirmes_ehpad cas_possibles_ehpad deces deces_ehpad reanimation hospitalises nouvelles_hospitalisations nouvelles_reanimations gueris depistes source_nom source_url source_archive source_type
23763 2020-09-01 region REG-75 Nouvelle-Aquitaine NaN NaN NaN NaN 434.0 NaN 13.0 87.0 17.0 4.0 2360.0 NaN OpenCOVID19-fr NaN NaN opencovid19-fr
23764 2020-09-01 region REG-76 Occitanie NaN NaN NaN NaN 530.0 NaN 26.0 159.0 18.0 5.0 3128.0 NaN OpenCOVID19-fr NaN NaN opencovid19-fr
23765 2020-09-01 region REG-84 Auvergne-Rhône-Alpes NaN NaN NaN NaN 1780.0 NaN 36.0 309.0 40.0 6.0 8394.0 NaN OpenCOVID19-fr NaN NaN opencovid19-fr
23766 2020-09-01 region REG-93 Provence-Alpes-Côte d'Azur NaN NaN NaN NaN 995.0 NaN 55.0 386.0 53.0 13.0 6463.0 NaN OpenCOVID19-fr NaN NaN opencovid19-fr
23767 2020-09-01 region REG-94 Corse NaN NaN NaN NaN 59.0 NaN 2.0 11.0 1.0 0.0 259.0 NaN OpenCOVID19-fr NaN NaN opencovid19-fr
In [7]:
for a in data[["maille_code", "maille_nom"]].groupby(["maille_code", "maille_nom"]):
    print(f"{a[0]}")
('COM-974', 'La Réunion')
('COM-977', 'Saint-Barthélemy')
('COM-978', 'Saint-Martin')
('COM-986', 'Wallis et Futuna')
('COM-987', 'Polynésie française')
('COM-988', 'Nouvelle-Calédonie')
('DEP-01', 'Ain')
('DEP-02', 'Aisne')
('DEP-03', 'Allier')
('DEP-04', 'Alpes-de-Haute-Provence')
('DEP-05', 'Hautes-Alpes')
('DEP-06', 'Alpes-Maritimes')
('DEP-07', 'Ardèche')
('DEP-08', 'Ardennes')
('DEP-09', 'Ariège')
('DEP-10', 'Aube')
('DEP-11', 'Aude')
('DEP-12', 'Aveyron')
('DEP-13', 'Bouches-du-Rhône')
('DEP-14', 'Calvados')
('DEP-15', 'Cantal')
('DEP-16', 'Charente')
('DEP-17', 'Charente-Maritime')
('DEP-18', 'Cher')
('DEP-19', 'Corrèze')
('DEP-21', "Côte-d'Or")
('DEP-22', "Côtes-d'Armor")
('DEP-23', 'Creuse')
('DEP-24', 'Dordogne')
('DEP-25', 'Doubs')
('DEP-26', 'Drôme')
('DEP-27', 'Eure')
('DEP-28', 'Eure-et-Loir')
('DEP-29', 'Finistère')
('DEP-2A', 'Corse-du-Sud')
('DEP-2B', 'Haute-Corse')
('DEP-30', 'Gard')
('DEP-31', 'Haute-Garonne')
('DEP-32', 'Gers')
('DEP-33', 'Gironde')
('DEP-34', 'Hérault')
('DEP-35', 'Ille-et-Vilaine')
('DEP-36', 'Indre')
('DEP-37', 'Indre-et-Loire')
('DEP-38', 'Isère')
('DEP-39', 'Jura')
('DEP-40', 'Landes')
('DEP-41', 'Loir-et-Cher')
('DEP-42', 'Loire')
('DEP-43', 'Haute-Loire')
('DEP-44', 'Loire-Atlantique')
('DEP-45', 'Loiret')
('DEP-46', 'Lot')
('DEP-47', 'Lot-et-Garonne')
('DEP-48', 'Lozère')
('DEP-49', 'Maine-et-Loire')
('DEP-50', 'Manche')
('DEP-51', 'Marne')
('DEP-52', 'Haute-Marne')
('DEP-53', 'Mayenne')
('DEP-54', 'Meurthe-et-Moselle')
('DEP-55', 'Meuse')
('DEP-56', 'Morbihan')
('DEP-57', 'Moselle')
('DEP-58', 'Nièvre')
('DEP-59', 'Nord')
('DEP-60', 'Oise')
('DEP-61', 'Orne')
('DEP-62', 'Pas-de-Calais')
('DEP-63', 'Puy-de-Dôme')
('DEP-64', 'Pyrénées-Atlantiques')
('DEP-65', 'Hautes-Pyrénées')
('DEP-66', 'Pyrénées-Orientales')
('DEP-67', 'Bas-Rhin')
('DEP-68', 'Haut-Rhin')
('DEP-69', 'Rhône')
('DEP-70', 'Haute-Saône')
('DEP-71', 'Saône-et-Loire')
('DEP-72', 'Sarthe')
('DEP-73', 'Savoie')
('DEP-74', 'Haute-Savoie')
('DEP-75', 'Paris')
('DEP-76', 'Seine-Maritime')
('DEP-77', 'Seine-et-Marne')
('DEP-78', 'Yvelines')
('DEP-79', 'Deux-Sèvres')
('DEP-80', 'Somme')
('DEP-81', 'Tarn')
('DEP-82', 'Tarn-et-Garonne')
('DEP-83', 'Var')
('DEP-84', 'Vaucluse')
('DEP-85', 'Vendée')
('DEP-86', 'Vienne')
('DEP-87', 'Haute-Vienne')
('DEP-88', 'Vosges')
('DEP-89', 'Yonne')
('DEP-90', 'Territoire de Belfort')
('DEP-91', 'Essonne')
('DEP-92', 'Hauts-de-Seine')
('DEP-93', 'Seine-Saint-Denis')
('DEP-94', 'Val-de-Marne')
('DEP-95', "Val-d'Oise")
('DEP-971', 'Guadeloupe')
('DEP-972', 'Martinique')
('DEP-973', 'Guyane')
('DEP-974', 'La Réunion')
('DEP-976', 'Mayotte')
('FRA', 'France')
('REG-01', 'Guadeloupe')
('REG-02', 'Martinique')
('REG-03', 'Guyane')
('REG-04', 'La Réunion')
('REG-06', 'Mayotte')
('REG-11', 'ÃŽle-de-France')
('REG-24', 'Centre-Val de Loire')
('REG-27', 'Bourgogne-Franche-Comté')
('REG-28', 'Normandie')
('REG-32', 'Hauts-de-France')
('REG-44', 'Grand Est')
('REG-52', 'Pays de la Loire')
('REG-53', 'Bretagne')
('REG-75', 'Nouvelle-Aquitaine')
('REG-76', 'Occitanie')
('REG-84', 'Auvergne-Rhône-Alpes')
('REG-93', "Provence-Alpes-Côte d'Azur")
('REG-94', 'Corse')
('WORLD', 'Monde')
In [8]:
data = enable_time_series_plot(data, timein_field="date", timeseries_field_out="t")

Dernieres donnees pour la France

In [9]:
maille_active = 'FRA'
fra = oc19_data_preproc(data, maille_active)
fra.tail(10)
Out[9]:
deces deces_ehpad reanimation hospitalises reanimation_cumul hospitalises_cumul deces_jour deces_jour_jour deces_ehpad_jour deces_ehpad_jour_jour ... deces_jour_mma_jour deces_ehpad_jour_mma_jour deces_jour_prop deces_ehpad_jour_prop reanimation_jour_prop hospitalises_jour_prop reanimation_cumul_jour_prop hospitalises_cumul_jour_prop reanimation_solde_vivant_jour_prop deces_jour_mma_jour_prop
t
2020-08-23 20002.0 10506.0 383.0 4709.0 343343.0 2324794.0 1.0 -8.0 0.0 0.0 ... 0.000000 0.000000 0.000693 0.000014 0.002611 -0.004581 0.001107 0.002057 0.038791 0.000000
2020-08-24 20017.0 10506.0 399.0 4690.0 343742.0 2329484.0 15.0 14.0 0.0 0.0 ... -0.571429 0.000000 0.000664 0.000014 0.005371 -0.007158 0.001112 0.002038 0.038668 -0.043011
2020-08-25 20038.0 10506.0 410.0 4600.0 344152.0 2334084.0 21.0 6.0 0.0 0.0 ... 0.714286 -0.142857 0.000699 0.000000 0.010453 -0.006925 0.001123 0.002020 0.044599 0.051020
2020-08-26 20038.0 10506.0 410.0 4600.0 344562.0 2338684.0 0.0 -21.0 0.0 0.0 ... -2.428571 0.000000 0.000577 0.000000 0.012544 -0.006398 0.001136 0.002004 0.040767 -0.209877
2020-08-27 20070.0 10506.0 381.0 4535.0 344943.0 2343219.0 32.0 32.0 0.0 0.0 ... 2.857143 0.000000 0.000719 0.000000 0.000375 -0.006710 0.001136 0.001987 0.038245 0.198020
2020-08-28 20089.0 10507.0 387.0 4535.0 345330.0 2347754.0 19.0 -13.0 1.0 1.0 ... -0.571429 0.142857 0.000690 0.000014 0.002953 -0.006615 0.001138 0.001970 0.038760 -0.041237
2020-08-29 20095.0 10507.0 400.0 4530.0 345730.0 2352284.0 6.0 -13.0 0.0 -1.0 ... -0.428571 0.000000 0.000668 0.000014 0.007143 -0.005708 0.001145 0.001955 0.040714 -0.031915
2020-08-30 20099.0 10507.0 402.0 4535.0 346132.0 2356819.0 4.0 -2.0 0.0 0.0 ... 0.428571 0.000000 0.000689 0.000014 0.006752 -0.005481 0.001151 0.001941 0.041222 0.030928
2020-08-31 20128.0 10507.0 409.0 4582.0 346541.0 2361401.0 29.0 25.0 0.0 0.0 ... 2.000000 0.000000 0.000788 0.000014 0.003493 -0.003367 0.001154 0.001931 0.042263 0.126126
2020-09-01 20147.0 10514.0 424.0 4604.0 346965.0 2366005.0 19.0 -10.0 7.0 7.0 ... -0.285714 1.000000 0.000773 0.000109 0.004717 0.000124 0.001158 0.001927 0.041442 -0.018349

10 rows × 44 columns

Graphes par regions

In [10]:
list_reg = [r for r in data["maille_code"].unique() if "REG" in r]
In [11]:
for reg in list_reg:
    oc19_data_preproc(data, reg)

Dynamique de l'epidemie

In [12]:
def plots_maille_code(maille_active='FRA'):
    fra = oc19_data_preproc(data, maille_active)
    plot_field_loops(fra, "deces", center=False, maille_active=maille_active)
    plot_field_loops(fra, "deces_ehpad", center=False, maille_active=maille_active)
    plot_field_loops(fra, "reanimation_cumul", [7], center=True, maille_active=maille_active)
    plot_field_loops(fra, "hospitalises_cumul", [7], center=True, maille_active=maille_active)
In [13]:
plots_maille_code(maille_active='FRA')
In [14]:
plots_maille_code(maille_active='REG-11')