How to draw vertical lines on a given plot

matplotlib, pandas, python, seaborn

Solution

The standard way to add vertical lines that will cover your entire plot window without you having to specify their actual height is `plt.axvline`

import matplotlib.pyplot as plt

plt.axvline(x=0.22058956)
plt.axvline(x=0.33088437)
plt.axvline(x=2.20589566)

OR

xcoords = [0.22058956, 0.33088437, 2.20589566]
for xc in xcoords:
    plt.axvline(x=xc)

You can use many of the keywords available for other plot commands (e.g. `color`, `linestyle`, `linewidth` ...). You can pass in keyword arguments `ymin` and `ymax` if you like in axes corrdinates (e.g. `ymin=0.25`, `ymax=0.75` will cover the middle half of the plot). There are corresponding functions for horizontal lines (`axhline`) and rectangles (`axvspan`).

Problem

Given a plot of a signal in time representation, how can I draw lines marking the corresponding time index? Specifically, given a signal plot with a time index ranging from 0 to 2.6 (seconds), I want to draw vertical red lines indicating the corresponding time index for the list `[0.22058956, 0.33088437, 2.20589566]`. How can I do it?

Original source

Related problems