Comment tracer une série chronologique dans Matplotlib (avec exemples)
Vous pouvez utiliser la syntaxe suivante pour tracer une série temporelle dans Matplotlib :
import matplotlib.pyplot as plt plt.plot(df.x, df.y)
Cela suppose que la variable x appartient à la classe datetime.datetime() .
Les exemples suivants montrent comment utiliser cette syntaxe pour tracer des données de séries chronologiques en Python.
Exemple 1 : tracer une série chronologique de base dans Matplotlib
Le code suivant montre comment tracer une série chronologique dans Matplotlib qui montre les ventes totales réalisées par une entreprise pendant 12 jours consécutifs :
import matplotlib.pyplot as plt import datetime import numpy as np import pandas as pd #define data df = pd.DataFrame({'date': np.array([datetime.datetime(2020, 1, i+1) for i in range(12)]), 'sales': [3, 4, 4, 7, 8, 9, 14, 17, 12, 8, 8, 13]}) #plot time series plt.plot(df.date, df.sales, linewidth=3)
L’axe des X montre la date et l’axe des Y montre le total des ventes à chaque date.
Exemple 2 : Personnaliser les étiquettes de titre et d’axe
Vous pouvez utiliser le code suivant pour ajouter un titre et des étiquettes d’axe au tracé :
import matplotlib.pyplot as plt import datetime import numpy as np import pandas as pd #define data df = pd.DataFrame({'date': np.array([datetime.datetime(2020, 1, i+1) for i in range(12)]), 'sales': [3, 4, 4, 7, 8, 9, 14, 17, 12, 8, 8, 13]}) #plot time series plt.plot(df.date, df.sales, linewidth=3) #add title and axis labels plt.title('Sales by Date') plt.xlabel('Date') plt.ylabel('Sales')
Exemple 3 : tracer plusieurs séries temporelles dans Matplotlib
Le code suivant montre comment tracer plusieurs séries temporelles dans un seul tracé dans Matplotlib :
import matplotlib.pyplot as plt
import datetime
import numpy as np
import pandas as pd
#define data
df = pd.DataFrame({'date': np.array([datetime.datetime(2020, 1, i+1)
for i in range(12)]),
'sales': [3, 4, 4, 7, 8, 9, 14, 17, 12, 8, 8, 13]})
df2 = pd.DataFrame({'date': np.array([datetime.datetime(2020, 1, i+1)
for i in range(12)]),
'returns': [1, 1, 2, 3, 3, 3, 4, 3, 2, 3, 4, 7]})
#plot both time series
plt.plot(df.date, df.sales, label='sales', linewidth=3)
plt.plot(df2.date, df2.returns, color='red', label='returns', linewidth=3)
#add title and axis labels
plt.title('Sales by Date')
plt.xlabel('Date')
plt.ylabel('Sales')
#add legend
plt.legend()
#display plot
plt.show()
Ressources additionnelles
Matplotlib : Comment créer des boxplots par groupe
Matplotlib : Comment créer des graphiques à barres empilées