Как добавить вертикальную линию к определенной дате в matplotlib


Вы можете использовать функцию axvline() с функцией datetime() , чтобы добавить вертикальную линию к определенной дате в Matplotlib:

 import datetime
import matplotlib. pyplot as plt

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

В этом конкретном примере добавляется вертикальная линия от 05.01.2023 на оси X графика в Matplotlib.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: добавьте вертикальную линию к определенной дате в Matplotlib.

Предположим, у нас есть следующий DataFrame pandas, который содержит информацию об общем объеме продаж, осуществленных в компании за восемь дней подряд:

 import datetime
import numpy as np
import pandas as pd

#createDataFrame
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)

        dirty date
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

Мы можем использовать следующий код, чтобы создать график продаж за день и добавить вертикальную линию к дате 05.01.2023 по оси 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 добавляет вертикальную линию к определенной дате

Обратите внимание, что на графике на дату 05.01.2023 по оси X добавлена вертикальная линия.

Также обратите внимание, что вы можете использовать аргументы color , linewidth и linestyle для настройки внешнего вида линии:

 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=' -- ') 

Обратите внимание, что вертикальная линия теперь красная, немного шире, чем в предыдущем примере, и пунктирная.

Не стесняйтесь изменять внешний вид вертикальной линии, чтобы придать ей желаемый вид.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Matplotlib:

Как добавить среднюю линию на график в Matplotlib
Как добавить линию тренда в Matplotlib
Как нарисовать горизонтальную линию в Matplotlib

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *