2 votes

tracés de lignes de bord de mer avec la date sur l'axe des x

Entrez la description de l'image ici Salut,

J'essaie de recréer certains des graphiques de covid-19 que nous avons vus. J'utilise les données de la base de données de Johns Hopkins.

Les données sont organisées de manière à ce que les noms des villes figurent dans les lignes et les colonnes dans les dates. Une capture d'écran du fichier csv est jointe. Je veux tracer des graphiques linéaires dans Seaborn avec les jours sur l'axe des x et les cas confirmés par ville sur l'axe des y. Pour une raison quelconque, je ne parviens pas à reproduire les courbes exponentielles du taux de mortalité.

Mon code est :

'''loading the file'''
date_columns = list(range(12,123))
df_covid_us = pd.read_csv(covid_us_file, parse_dates=date_columns)
df_covid_us = pd.read_csv(covid_us_file)

'''slicing the columns needed. Province_State and the date columns'''
df = df_covid_us.iloc[:, np.r_[6, 12:123]]
df = df[df['Province_State']=='New York']

'''using df.melt'''
df2 =df.melt(id_vars='Province_State',var_name='Date',value_name='Deaths')

'''plotting using seaborn'''[enter image description here][2]
sns.lineplot(x='Date',y='Deaths',data=df2, ci=None)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=20))
plt.show()

Entrez la description de l'image ici

2voto

bernie Points 44206

Avec un petit échantillon de données inventées :

import pandas as pd, seaborn as sns
import matplotlib.pyplot as plt, matplotlib.dates as mdates

df = pd.DataFrame({'Province_State':['American Samoa','Guam','Puerto Rico'],
                   '2020-01-22':[0,1,2],
                   '2020-01-23':[2,1,0]}) 

# to get dates in rows
date_columns = [c for c in df.columns.tolist() if c.endswith('/2020')]
df2 = df.melt(id_vars='Province_State',value_vars=date_columns,
              var_name='Date',value_name='Deaths')

# dates from string to datetime
df2['Date'] = pd.to_datetime(df2['Date'])

sns.lineplot(x='Date',y='Deaths',hue='Province_State',data=df2)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=1)) 

plt.show()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X