def plot_ecg_pan_tompkins_peaks(time, orig_ecg, integrated_ecg, sampling_rate, possible_peaks,
                                probable_peaks, definitive_peaks):
    """
    -----
    Brief
    -----
    With this plotting function it will be possible to demonstrate which "peaks" are being
    detected in each stage of Pan-Tompkins Algorithm (possible, probable, definitive).

    -----------
    Description
    -----------
    Function intended to generate a Bokeh figure containing all peaks detected in a temporal
    segment (of ECG integrated signal) with 2 seconds.

    "Possible Peaks" are marked with the smallest circle while "Probable Peaks" and "Definitive
    Peaks" are highlighted with medium and large size circles.

    Applied in the Notebook titled "Event Detection - R Peaks (ECG)".

    ----------
    Parameters
    ----------
    time : list
        List containing the time-axis sequence of values.

    orig_ecg : list
        Sequence of sampled values (Original ECG).

    integrated_ecg : list
        Sequence of sampled values (Integrated ECG).

    sampling_rate : int
        Acquisition sampling rate (Hz)

    possible_peaks : list
        List containing all "Possible Peaks" detected from Pan-Tompkins R Peak Detection
        Algorithm.

    probable_peaks : list
        List containing all "Probable Peaks" detected from Pan-Tompkins R Peak Detection
        Algorithm.

    definitive_peaks : list
        List containing all "Definitive Peaks" detected from Pan-Tompkins R Peak Detection
        Algorithm.
    """

    # List that store the figure handler
    list_figures = []

    # Plotting of a signal segment with 2 seconds
    segment_data = numpy.array(orig_ecg[:2 * sampling_rate])
    segment_int = numpy.array(integrated_ecg[:2 * sampling_rate])
    segment_time = numpy.array(time[:2 * sampling_rate])

    # Peaks list for the 2 seconds window
    possible_peaks_wind = numpy.array(possible_peaks)[numpy.array(possible_peaks) < len(segment_int)]
    probable_peaks_wind = numpy.array(probable_peaks)[numpy.array(probable_peaks) < len(segment_int)]
    definitive_peaks_wind = numpy.array(definitive_peaks)[numpy.array(definitive_peaks) < len(segment_int)]

    list_figures.append(figure(x_axis_label='Time (s)', y_axis_label='Raw Data', **opensignals_kwargs("figure")))
    list_figures[-1].line(segment_time, segment_int, **opensignals_kwargs("line"))
    list_figures[-1].circle(segment_time[definitive_peaks_wind], segment_int[definitive_peaks_wind], size=30, color="#00893E", legend="Definitive Peaks")
    list_figures[-1].circle(segment_time[probable_peaks_wind], segment_int[probable_peaks_wind], size=20, color="#009EE3", legend="Probable Peaks")
    list_figures[-1].circle(segment_time[possible_peaks_wind], segment_int[possible_peaks_wind], size=10, color="#302683", legend="Possible Peaks")

    # Show figure.
    opensignals_style(list_figures)
    show(list_figures[-1])
def plot_ecg_pan_tompkins_peaks ( time , orig_ecg , integrated_ecg , sampling_rate , possible_peaks , probable_peaks , definitive_peaks ) : list_figures = [ ] segment_data = numpy . array ( orig_ecg [ : 2 * sampling_rate ] ) segment_int = numpy . array ( integrated_ecg [ : 2 * sampling_rate ] ) segment_time = numpy . array ( time [ : 2 * sampling_rate ] ) possible_peaks_wind = numpy . array ( possible_peaks ) [ numpy . array ( possible_peaks ) < len ( segment_int ) ] probable_peaks_wind = numpy . array ( probable_peaks ) [ numpy . array ( probable_peaks ) < len ( segment_int ) ] definitive_peaks_wind = numpy . array ( definitive_peaks ) [ numpy . array ( definitive_peaks ) < len ( segment_int ) ] list_figures . append ( figure ( x_axis_label = 'Time (s)' , y_axis_label = 'Raw Data' , ** opensignals_kwargs ( "figure" ) ) ) list_figures [ - 1 ] . line ( segment_time , segment_int , ** opensignals_kwargs ( "line" ) ) list_figures [ - 1 ] . circle ( segment_time [ definitive_peaks_wind ] , segment_int [ definitive_peaks_wind ] , size = 30 , color = "#00893E" , legend = "Definitive Peaks" ) list_figures [ - 1 ] . circle ( segment_time [ probable_peaks_wind ] , segment_int [ probable_peaks_wind ] , size = 20 , color = "#009EE3" , legend = "Probable Peaks" ) list_figures [ - 1 ] . circle ( segment_time [ possible_peaks_wind ] , segment_int [ possible_peaks_wind ] , size = 10 , color = "#302683" , legend = "Possible Peaks" ) opensignals_style ( list_figures ) show ( list_figures [ - 1 ] )
-----
    Brief
    -----
    With this plotting function it will be possible to demonstrate which "peaks" are being
    detected in each stage of Pan-Tompkins Algorithm (possible, probable, definitive).

    -----------
    Description
    -----------
    Function intended to generate a Bokeh figure containing all peaks detected in a temporal
    segment (of ECG integrated signal) with 2 seconds.

    "Possible Peaks" are marked with the smallest circle while "Probable Peaks" and "Definitive
    Peaks" are highlighted with medium and large size circles.

    Applied in the Notebook titled "Event Detection - R Peaks (ECG)".

    ----------
    Parameters
    ----------
    time : list
        List containing the time-axis sequence of values.

    orig_ecg : list
        Sequence of sampled values (Original ECG).

    integrated_ecg : list
        Sequence of sampled values (Integrated ECG).

    sampling_rate : int
        Acquisition sampling rate (Hz)

    possible_peaks : list
        List containing all "Possible Peaks" detected from Pan-Tompkins R Peak Detection
        Algorithm.

    probable_peaks : list
        List containing all "Probable Peaks" detected from Pan-Tompkins R Peak Detection
        Algorithm.

    definitive_peaks : list
        List containing all "Definitive Peaks" detected from Pan-Tompkins R Peak Detection
        Algorithm.