Как добавить вертикальную линию к определенной дате в 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))
Обратите внимание, что на графике на дату 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