Comment ajouter une ligne verticale à une date spécifique dans Matplotlib



Vous pouvez utiliser la fonction axvline() avec la fonction datetime() pour ajouter une ligne verticale à une date spécifique dans Matplotlib :

import datetime
import matplotlib.pyplot as plt

plt.axvline(datetime.datetime(2023, 1, 5))

Cet exemple particulier ajoute une ligne verticale au 05/01/2023 sur l’axe des x d’un tracé dans Matplotlib.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : ajouter une ligne verticale à une date spécifique dans Matplotlib

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur le total des ventes réalisées sur huit jours consécutifs dans une entreprise :

import datetime
import numpy as np
import pandas as pd

#create DataFrame
df = pd.DataFrame({'date': np.array([datetime.datetime(2020, 1, i+1)
                                     for i in range(8)]),
                   'sales': [3, 4, 4, 7, 8, 9, 14, 17]})

#view DataFrame
print(df)

        date  sales
0 2023-01-01      3
1 2023-01-02      4
2 2023-01-03      4
3 2023-01-04      7
4 2023-01-05      8
5 2023-01-06      9
6 2023-01-07     14
7 2023-01-08     17

Nous pouvons utiliser le code suivant pour créer un graphique des ventes par jour et ajouter une ligne verticale à la date du 05/01/2023 sur l’axe des x :

import matplotlib.pyplot as plt

#plot sales by date
plt.plot_date(df.date, df.sales)

#rotate x-axis ticks 45 degrees and right-aline
plt.xticks(rotation=45, ha='right')

#add vertical line at 1/5/2023
plt.axvline(datetime.datetime(2023, 1, 5))

Matplotlib ajoute une ligne verticale à une date spécifique

Notez qu’une ligne verticale a été ajoutée au tracé à la date du 05/01/2023 sur l’axe des x.

Notez également que vous pouvez utiliser les arguments color , linewidth et linestyle pour personnaliser l’apparence de la ligne :

import matplotlib.pyplot as plt

#plot sales by date
plt.plot_date(df.date, df.sales)

#rotate x-axis ticks 45 degrees and right-aline
plt.xticks(rotation=45, ha='right')

#add customized vertical line at 1/5/2023
plt.axvline(datetime.datetime(2023, 1, 5), color='red', linewidth=3, linestyle='--')

Notez que la ligne verticale est désormais rouge, légèrement plus large que dans l’exemple précédent, et en pointillés.

N’hésitez pas à modifier l’apparence de la ligne verticale pour lui donner l’apparence que vous souhaitez.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans Matplotlib :

Comment ajouter une ligne moyenne au tracé dans Matplotlib
Comment ajouter une ligne de tendance dans Matplotlib
Comment dessiner une ligne horizontale dans Matplotlib

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *