Plot My ECG#
pmecg is a Python library for plotting high-quality, paper-like ECG signals using Matplotlib. It is designed with multiple users in mind:
researchers and clinicians who need publication-ready, customizable ECG visualisations
Machine Learning scientists training image models for ECG classification
Features#
Paper-like ECG rendering with correct physical dimensions (mm/s, mm/mV)
Flexible lead layouts: built-in templates (
"4x3","2x6","1x12", …) or fully custom configurationsAttention map overlays — highlight intervals, colour individual leads, or shade background regions
Clean public API: a single
ECGPlotterclass with sensible defaults
Quick Start#
import numpy as np
import pmecg
# 12-lead ECG at 500 Hz, 10 seconds
fs = 500
signal = np.random.randn(fs * 10, 12) * 0.5 # shape: (n_samples, n_leads)
lead_names = ["I", "II", "III", "aVR", "aVL", "aVF", "V1", "V2", "V3", "V4", "V5", "V6"]
ecg_data = (signal, lead_names)
config = pmecg.template_factory("4x3", ecg_data, leads_map=None)
plotter = pmecg.ECGPlotter(print_information=True)
fig = plotter.plot(ecg_data, sampling_frequency=fs, configuration=config)
fig.savefig("ecg.pdf")
Installation#
pip install pmecg
Contents#
Acknowledgements#
Special thanks to Antônio H. Ribeiro (Uppsala University), Stefan Gustaffson (Uppsala University Hospital), and Johan Sundström (Uppsala University Hospital) for their insights, feedbacks, and contributions!
License#
Copyright (C) 2026 Fabio Bonassi
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3 as published by the Free Software Foundation.
See LICENSE for the full text.