This repository contains a python library for simple plotting of ECG data (typically QTc values) in the "24 hour clock" format:
All of the included default values, thresholds/ranges, example data sets, etc. are for illustration, not for diagnostic use. It is the clinician's responsibility to adjust all settings appropriately.
You will need Python 3 with the following modules available:
Depending on the chosen
matplotlib backend, there may be other dependencies, such as
To install from PyPI:
pip3 install ecgclock
Or from git:
git clone https://bitbucket.org/atpage/ecgclock.git cd ecgclock pip3 install -e .
ECGClock is the main class that allows you to create and plot an ECG Clock. It is subclassed as
There are two main things (classes) that you would want to add to a clock: the
Recording, and the
Recording is a set of measurements from a single ECG recording (e.g. a 24-hour Holter). It will be plotted as a continous line on the clock (see blue and purple lines in the example). A
Cohort is a set of
Recordings, from which you want to plot the typical range of some measured value. For example, you may want to plot the IQR of QTc in a
Cohort of healthy adults, to see how it compares to another
Cohort or individual
Recording. The green region in the example was created by plotting one
Cohort with two different percentile ranges.
The basic process to make a clock, then, is:
Cohortsto the clock.
Step 2 may also require some pre-processing, e.g. computing heart rate corrected columns that weren't provided in the original measurements.
For example code, see
In Windows you should run
multiprocessing.freeze_support() at the beginning of any
This package also includes a
make_qtclock command. Run
make_qtclock -h for details.
Usage of this library was originally documented in this article. However, significant refactoring of the code is taking place in 2018, including API changes. The article is still a good reference, but specific code examples will no longer work as-is.
To use the old version of the library, roll back to commit 7e4d4ce (which is tagged as 'old').