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