From 8fa95d8fd15001ea295667c6be2a6301c9ee7fe7 Mon Sep 17 00:00:00 2001 From: 86330dcd53439c6683b5cce1d0afe6d5 <86330dcd53439c6683b5cce1d0afe6d5@app-learninglab.inria.fr> Date: Mon, 11 Nov 2024 19:05:32 +0000 Subject: [PATCH] Add new file --- module3/exo3/exercice_python.org | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 module3/exo3/exercice_python.org diff --git a/module3/exo3/exercice_python.org b/module3/exo3/exercice_python.org new file mode 100644 index 0000000..f509f8f --- /dev/null +++ b/module3/exo3/exercice_python.org @@ -0,0 +1,57 @@ +import pandas as pd +import matplotlib.pyplot as plt + +# Télécharger les données +url = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv" +data = pd.read_csv(url) + +# Liste des pays à inclure dans le graphe +countries = [ + "Belgium", "China", "China, Hong Kong", "France", "Germany", "Iran", + "Italy", "Japan", "Korea, South", "Netherlands", "Portugal", + "Spain", "United Kingdom", "US" +] + +# Filtrer les données pour les pays sélectionnés +data_filtered = data[data['Country/Region'].isin(countries)] + +# Regrouper les données par pays et additionner les cas pour chaque date +data_grouped = data_filtered.groupby('Country/Region').sum() + +# Supprimer les colonnes inutiles +data_grouped = data_grouped.drop(columns=['Lat', 'Long']) + +# Transposer le dataframe pour avoir les dates en lignes et les pays en colonnes +data_transposed = data_grouped.T + +# Supprimer la première ligne qui contient "Country/Region" +if 'Province/State' in data_transposed.index: + data_transposed = data_transposed.drop('Province/State') +if 'Country/Region' in data_transposed.index: + data_transposed = data_transposed.drop('Country/Region') + +# Convertir les index en chaînes de caractères +data_transposed.index = data_transposed.index.astype(str) + +# Vérifier et convertir les colonnes en entiers si nécessaire +for country in countries: + if country in data_transposed.columns: + data_transposed[country] = pd.to_numeric(data_transposed[country], errors='coerce').fillna(0).astype(int) + +# Créer le graphe avec échelle linéaire +minimiser = 0 +plt.figure(figsize=(14, 8)) +for country in countries: + if country in data_transposed.columns: + plt.plot(data_transposed.index, data_transposed[country], label=country) +plt.xlabel('Date') +plt.ylabel('Nombre cumulé de cas') +plt.title('Nombre cumulé de cas de COVID-19 au cours du temps') +plt.legend() +plt.xticks(rotation=45, ha='right') # Les étiquettes de l'axe x sont pivotées pour éviter la superposition +plt.grid(True) +plt.tight_layout() # Les sous-parties du graphe sont ajustées automatiquement pour éviter la superposition + + + +plt.show() -- 2.18.1