Plotting API (ecgfeat.viz, viz extra)¶
Module ecgfeat.viz.
| Name | Kind | Signature | Summary |
|---|---|---|---|
plot_ecg |
function | (signal: 'ArrayLike', record: 'RecordLike', *, layout: "Literal['3x4', '6x2', '12x1']" = '3x4', rhythm_leads: 'Sequence[str]' = ('II',), start_s: 'float' = 0.0, duration_s: 'float \| None' = None, paper_speed: 'float' = 25.0, gain: 'float' = 10.0, annotations: "Literal['none', 'beats', 'waves']" = 'none', header: 'bool' = True, figure: 'Figure \| None' = None, style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, Axes]' |
Plot the ECG on clinical ECG paper and return (figure, axes). |
plot_record |
function | (signal: 'ArrayLike', record: 'RecordLike', *, leads: 'Sequence[str] \| None' = None, start_s: 'float \| None' = None, end_s: 'float \| None' = None, annotations: 'AnnotationMode' = 'waves', figure: 'Figure \| None' = None, y_scale: "Literal['shared', 'independent']" = 'shared', style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, tuple[Axes, ...]]' |
Plot selected ECG leads with record-backed annotations and return the figure and axes. |
plot_beat |
function | (signal: 'ArrayLike', record: 'RecordLike', *, beat: 'int', lead: 'str', figure: 'Figure \| None' = None, style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, Axes]' |
Plot one beat on one lead using boundaries and measurements from the record. |
plot_beat_all_leads |
function | (signal: 'ArrayLike', record: 'RecordLike', *, beat: 'int', leads: 'Sequence[str] \| None' = None, figure: 'Figure \| None' = None, style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, tuple[Axes, ...]]' |
Plot one beat across selected leads and return the figure and axes. |
plot_representative_beat |
function | (signal: 'ArrayLike', record: 'RecordLike', *, lead: 'str', figure: 'Figure \| None' = None, beats: "Literal['all', 'dominant']" = 'all', style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, Axes]' |
Plot the representative beat for one lead: the median of the record's beats. |
plot_median_beats |
function | (signal: 'ArrayLike', record: 'RecordLike', *, leads: 'Sequence[str] \| None' = None, beats: "Literal['dominant', 'all']" = 'dominant', figure: 'Figure \| None' = None, style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, tuple[Axes, ...]]' |
Median beat of every selected lead on one shared scale, in the standard 3 x 4 order. |
plot_st_segments |
function | (signal: 'ArrayLike', record: 'RecordLike', *, leads: 'Sequence[str] \| None' = None, point: "Literal['j', 'j60']" = 'j60', figure: 'Figure \| None' = None, style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, tuple[tuple[Axes, ...], Axes]]' |
ST view: per-lead median beats around the J point and the record's ST levels per lead. |
plot_rhythm |
function | (signal: 'ArrayLike', record: 'RecordLike', *, lead: 'str' = 'II', start_s: 'float \| None' = None, end_s: 'float \| None' = None, figure: 'Figure \| None' = None, style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, tuple[Axes, Axes]]' |
Rhythm view: a lead strip with beat classes and atrial events, over the RR tachogram. |
plot_quality_summary |
function | (signal: 'ArrayLike', record: 'RecordLike', *, leads: 'Sequence[str] \| None' = None, figure: 'Figure \| None' = None, metrics: "Literal['auto', 'noise', 'rms']" = 'auto', style: "'sty.PlotStyle \| str \| None'" = None) -> 'tuple[Figure, tuple[Axes, ...]]' |
Plot signal quality from the record and return (figure, (status_axes, detail_axes)). |
plot_record_interactive |
function | (signal: 'Any', record: 'Any', *, leads: 'Sequence[str] \| None' = None, style: 'Any' = None) -> 'Any' |
Plotly figure of the selected leads with hoverable landmarks (pip install "ecg-records[interactive]"). |
annotations_to_dict |
function | (record: 'Any', *, leads: 'Sequence[str] \| None' = None) -> 'dict[str, Any]' |
JSON-ready annotations of record (no signal, no Matplotlib). |
PlotStyle |
class | (name: 'str' = 'light', surface: 'str' = '#fcfcfb', ink: 'str' = '#0b0b0b', ink_secondary: 'str' = '#52514e', muted: 'str' = '#898781', grid: 'str' = '#e1e0d9', baseline: 'str' = '#c3c2b7', series: 'tuple[str, ...]' = ('#2a78d6', '#eb6834', '#1baf7a', '#eda100', '#e87ba4', '#008300', '#6250d6', '#e34948'), diverging: 'tuple[str, str, str]' = ('#2a78d6', '#e34948', '#f0efec'), sequential: 'tuple[str, ...]' = ('#cde2fb', '#9ec5f4', '#6da7ec', '#3987e5', '#256abf', '#184f95', '#0d366b'), status: 'Mapping[str, str]' = <factory>, status_unknown: 'str' = '#898781', paper: 'str' = '#fffdfb', paper_minor: 'str' = '#f6cfd3', paper_major: 'str' = '#e8909a', paper_trace: 'str' = '#0b0b0b', trace_width: 'float' = 0.8, paper_trace_width: 'float' = 0.7, marker_size: 'float' = 6.0, hollow_marker_size: 'float' = 7.0, hollow_edge_width: 'float' = 1.1, font_size: 'float' = 8.0, title_size: 'float' = 9.0, fiducials: 'Mapping[str, MarkerStyle]' = <factory>) -> None |
Every colour and size the plots use. Derive variants with :meth:replace. |
get_style |
function | () -> 'PlotStyle' |
The style plots use when called without style=. |
set_style |
function | (style: 'PlotStyle \| str') -> 'PlotStyle' |
Replace the process default ("light", "dark" or a :class:PlotStyle); returns the previous one. |
use_style |
function | (style: 'PlotStyle \| str') -> 'Iterator[PlotStyle]' |
Use style for plots created inside the with block. |
VisualizationInputError |
class | (message: 'str', *, code: 'str' = 'visualization_input_error', **details: 'object') -> 'None' |
Signal data do not match the acquisition identity declared by the ECG Record. |