Как нарисовать вертикальные линии на данном участке в matplotlib?

Учитывая график сигнала во временном представлении, как рисовать линии, обозначающие соответствующий временной индекс?

В частности, учитывая график сигнала с временным индексом в диапазоне от 0 до 2,6 (с), я хочу нарисовать вертикальные красные линии с указанием соответствующего индекса времени для списка [0.22058956, 0.33088437, 2.20589566] , как я могу это сделать?

3 Solutions collect form web for “Как нарисовать вертикальные линии на данном участке в matplotlib?”

Стандартный способ добавления вертикальных линий, которые будут охватывать все ваше окно графика без необходимости указывать их фактическую высоту, – plt.axvline

 import matplotlib.pyplot as plt plt.axvline(x=0.22058956) plt.axvline(x=0.33088437) plt.axvline(x=2.20589566) 

ИЛИ

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

Вы можете использовать многие ключевые слова, доступные для других команд сюжета (например, color , linestyle , linestyle …). Вы можете передать в аргументы ключевого слова ymin и ymax если вам нравится в осях corrdinates (например, ymin=0.25 , ymax=0.75 будет охватывать среднюю половину графика). Существуют соответствующие функции для горизонтальных линий ( axhline ) и прямоугольников ( axvspan ).

Для нескольких строк

 xposition = [0.3, 0.4, 0.45] for xc in xposition: plt.axvline(x=xc, color='k', linestyle='--') 

Вызов axvline в цикле, как предложили другие, работает, но может быть неудобным, поскольку

  1. Каждая строка представляет собой отдельный сюжетный объект, который заставляет вещи быть очень медленными, когда у вас много линий.
  2. Когда вы создаете легенду, каждая строка имеет новую запись, которая может быть не такой, какой вы хотите.

Вместо этого вы можете использовать следующие удобные функции, которые создают все строки как один объект объекта:

 import matplotlib.pyplot as plt import numpy as np def axhlines(ys, **plot_kwargs): """ Draw horizontal lines across plot :param ys: A scalar, list, or 1D array of vertical offsets :param plot_kwargs: Keyword arguments to be passed to plot :return: The plot object corresponding to the lines. """ ys = np.array((ys, ) if np.isscalar(ys) else ys, copy=False) lims = plt.gca().get_xlim() y_points = np.repeat(ys[:, None], repeats=3, axis=1).flatten() x_points = np.repeat(np.array(lims + (np.nan, ))[None, :], repeats=len(ys), axis=0).flatten() plot = plt.plot(x_points, y_points, scalex = False, **plot_kwargs) return plot def axvlines(xs, **plot_kwargs): """ Draw vertical lines on plot :param xs: A scalar, list, or 1D array of horizontal offsets :param plot_kwargs: Keyword arguments to be passed to plot :return: The plot object corresponding to the lines. """ xs = np.array((xs, ) if np.isscalar(xs) else xs, copy=False) lims = plt.gca().get_ylim() x_points = np.repeat(xs[:, None], repeats=3, axis=1).flatten() y_points = np.repeat(np.array(lims + (np.nan, ))[None, :], repeats=len(xs), axis=0).flatten() plot = plt.plot(x_points, y_points, scaley = False, **plot_kwargs) return plot 
  • matplotlib: как я могу преобразовать рассеяние XYZ в пиксельное изображение?
  • таблица matplotlib обрезается
  • Как нарисовать прямоугольник над определенной областью в графике matplotlib
  • как сохранить размер pcolormesh в виде массива numpy - сохраняя форму данных?
  • добавление подзаголовка к графику matplotlib
  • Вставить изображение в круговую диаграмму
  • matplotlib: рисование линий между точками, игнорирующими отсутствующие данные
  • Работа с Python, файлы
  •  
    Interesting Posts for Van-Lav

    Как закрыть подпроцесс Python 2.5.2 Popen, когда у меня есть данные, которые мне нужны?

    gdata-python-api + Аналитика с простым auth

    python pandas read_excel возвращает UnicodeDecodeError для описания ()

    Преобразовать список ints на один номер?

    Построение кадра данных как «hist», так и «kde» на одном и том же участке

    где операторы отображаются в магические методы в python?

    Определите, есть ли запрос фляжки из JavaScript или нет.

    Python pytz: конвертировать локальное время в utc. Локализация не преобразует

    Воспроизводимость псевдослучайных чисел python в системах и версиях?

    ImportError: Ошибка загрузки DLL: – при попытке импортировать библиотеку psycopg2

    Добавление свойства, предоставленного пользователем (во время выполнения), к экземпляру класса Expando в движке Google?

    Вытягивание данных в шаблон из внешней базы данных с помощью django

    Компиляция vim с конкретной версией Python

    Вызов скрипта Sikuli из Python (Selenium)

    MongoDB aggregate / group / sum запрос переведен на pymongo запрос

    Python - лучший язык программирования в мире.