Data visualisation
A chart is a claim about a patient made in geometry rather than in words, and it is read faster and trusted more than the numbers it was drawn from. That makes it a clinical surface, and it needs the same rigour as the alarm palette rather than the rigour of a dashboard.
Overview
Until now this system has said almost nothing about charts, and Status & limitations has admitted it in writing. That was tolerable while every worked example concerned a single episode. It stops being tolerable the moment a device's finding is a shape over time — a trend, a rate of change, a value drifting toward a threshold.
The rules here all descend from one property that separates clinical charting from every other kind: the reader cannot check the drawing against the data. A clinician looking at a line has no way to know that the axis was auto-fitted, that a gap was interpolated, or that two points came from different assays. Every one of those changes what the picture means, and none of them is visible in the picture.
The axis is fixed
Scale is decided by the clinical range, not by the data in view. A chart that rescales to fit makes every patient look equally variable.
Only comparable points connect
A line asserts continuity. Where the measurements are not commensurable, the line breaks and the chart says why.
The numbers survive
A chart never replaces the values. It is an additional representation of data that is also readable, precisely, as text.
Axis honesty
Auto-fitting a y-axis is the default in every charting library and it is wrong here. It makes the visual amplitude of a change independent of its clinical significance — a patient drifting 2 ng/L within a normal range produces the same dramatic slope as one crossing a decision threshold.
78 → 96 µmol/L over 12 months, within the reference range throughout. The rise is real and modest, and it looks modest.
- Scale from the clinical range, not from the minimum and maximum in view, and state it — "scale fixed 40–160" is part of the chart.
- The same quantity uses the same scale everywhere. A value that looks alarming on the summary and unremarkable on the detail view has taught the reader nothing except not to trust either.
- Include zero where zero is meaningful, and where it is not — most physiological ranges — say what the axis does start at, prominently.
- Never truncate to exaggerate. A y-axis starting just below the lowest point turns noise into a trend.
- No dual axes. Two quantities on two scales in one frame create apparent correlations that are an artefact of where the axes were placed. Use two stacked charts sharing an x-axis.
- Reference range as a band, always drawn where one exists — it is the only thing that makes a value interpretable without arithmetic.
Comparability and gaps
A line between two points asserts that they are measurements of the same thing on the same scale. Where that is not true — a different assay, a different scanner, a different protocol, a change in units — the line breaks and the chart states the discontinuity. Silently connecting incommensurable measurements produces a trend that does not exist, and it is invisible to the person reading it.
Not directly comparable. The first pair was measured on a different scanner and protocol from the second. The dashed segment spans both a 14-month gap and a method change; it is drawn faintly to show sequence, and it is not a measurement of growth.
- A gap is drawn as a gap. Never interpolated, never carried forward at the last value, never closed up as though the measurements were adjacent in time.
- The x-axis is time, to scale. Evenly spacing measurements taken at uneven intervals is the most common charting lie in clinical software.
- Method changes are annotated where they occur, and the chart says whether the segments may be compared.
- Units never change silently inside a chart — see International design, where units are the primary hazard.
- Projections are visually distinct and labelled as projections. Dashed, lighter, with the model and horizon named. A projected point is never rendered as a measurement.
- State the aggregation window. A daily mean hides a nocturnal low; if the chart aggregates, it says so, and the underlying resolution is reachable.
Colour and encoding
The system has no chart colour palette, and that is deliberate.
Every series colour has to survive greyscale printing, colour-vision deficiency and a ward display at four metres. Rather than build a palette that meets those constraints and then rely on people using it correctly, this system distinguishes series by direct labelling and line style — which needs no palette, no legend, and no second encoding to remember. Adding a chart ramp would also mean adding governed tokens for a problem that does not require them.
- Alarm hues are never chart colours.
--alarm-criticalon a line, a point or a threshold marker dilutes the IEC palette everywhere else in the product. See Colour. - Out of range is stated, not coloured. The same rule as Key–value pair: a value outside its reference band is already visibly outside the band, and does not additionally turn red.
- Direct labels, not legends. A legend is a memory task performed while reading; a label at the end of a line is not.
- Never colour alone to distinguish anything — series, projections, or measured versus imputed.
- Points are drawn. A line without markers hides how many measurements it was drawn from, and four points and forty points are clinically different.
The chart is never the only representation
Precision and accessibility turn out to be the same requirement here. A reader cannot get
96 µmol/L off a line, and neither can assistive technology.
The sparkline is decorative and marked aria-hidden. Everything it conveys —
direction, magnitude, how many points — is in the text beside it.
- Every chart has a text equivalent: the current value with its unit, the change, the interval, and the number of measurements.
- A table is reachable from any chart carrying clinical values, with the exact numbers and their timestamps.
- Sparklines never carry a value alone. They are a shape beside a number, never a substitute for one.
- Never an image of a chart where the data exists — see WCAG 2.2 SC 1.4.5. An exported chart carries its table with it.
Do's and don'ts
Fixed scale, reference band drawn, points visible. The crossing is legible because the band is there, not because anything turned red.
Same two values, axis fitted to them, no reference band and no points. Every patient's chart looks like this one, so none of them means anything.
6.0 → 8.4 mm over 3 years · not directly comparable, scanner and protocol changed · 14 months with no imaging
The caveats travel with the number. A reader can decide how much the apparent growth is worth.
Growth: +2.4 mm over 3 years
A single derived figure spanning a scanner change and a 14-month gap. It reads as a measurement and it is an artefact.
Projected to cross 110 µmol/L by Mar 2027 — projection, not a measurement · linear fit on 5 points
Named as a projection, with the method and the number of points behind it. The reader can weigh it.
Creatinine Mar 2027: 112 µmol/L
A prediction rendered exactly like a result. Two significant figures of false precision about a measurement nobody has taken.
Two stacked charts sharing one time axis.
Both quantities readable on their own scales, with no implied relationship the data does not support.
One chart, two y-axes, two lines crossing.
The crossing point is decided by where the axes were placed. It looks like a finding and it is a drawing choice.
Accessibility
- Every clinical chart is
role="img"with a realaria-labelstating the quantity, the range covered, the direction and magnitude of change, and the reference range. "Chart of creatinine" is not a description. - The text equivalent is not the alt text. The values also exist as text or a reachable table, because a summary sentence is not a substitute for the numbers.
- Decorative sparklines are
aria-hiddenandfocusable="false", since everything they show is in the adjacent text. - Non-text contrast ≥ 3:1 for lines, points and axes against the chart surface (SC 1.4.11). Reference bands are background and are additionally labelled in text.
- Never colour alone (SC 1.4.1) — series, projections and breaks are distinguished by line style and direct labels.
- Charts do not animate on data arrival (SC 2.3.1, and see Motion). A line that redraws hides the change it is redrawing, and a value arriving is not an occasion for movement.
- Reflow to 320 px (SC 1.4.10): charts scale with the viewport and never require horizontal scrolling. Below the point where a chart is legible, it is replaced by its table rather than shrunk.
- Readable in greyscale and in print, which is how a chart in a discharge summary is actually read.
Outcomes of use
What this contributes to, in the terms of Usability & context of use. These are attributes believed to contribute to an outcome; the outcome itself is settled by observing real use in a specified context, not by this page.
- Effectiveness — the magnitude a clinician perceives matches the magnitude that occurred. A fixed axis is the single largest contributor to this and the most commonly omitted.
- Efficiency — a trend read at a glance instead of assembled from a column of numbers, which is most of why charts earn their place.
- Satisfaction — trust that survives checking. A clinician who compares the chart against the values once and finds them consistent stops checking; one who finds a rescaled axis never stops.
Clinical safety notes
Trace these in your risk file (ISO 14971) and usability engineering file (IEC 62366-1).
- Y-axis fixed by clinical range and stated. Mitigates: clinically trivial variation perceived as a dramatic trend, and the reverse.
- Same quantity, same scale across views. Mitigates: contradictory impressions of the same data in two places.
- No dual axes. Mitigates: a spurious correlation created by axis placement.
- Time axis to scale. Mitigates: uneven intervals read as a steady rate of change.
- Gaps drawn, never interpolated or carried forward. Mitigates: absent data read as measured data.
- Incomparable measurements not connected. Mitigates: a method or unit change read as clinical change.
- Projections visually distinct and labelled. Mitigates: a prediction acted on as a result.
- Aggregation window stated. Mitigates: an averaged series concealing excursions that were the finding.
- Alarm hues never used in charts. Mitigates: dilution of the IEC palette.
- Text equivalent and reachable table. Mitigates: values that cannot be read precisely, and charts inaccessible to assistive technology.
- Points drawn, count stated. Mitigates: a confident line drawn from two measurements.
Related
- Trend & change over time — this foundation applied, where the change is the finding.
- Colour — why alarm hues are reserved.
- Key–value pair — the text representation a chart accompanies rather than replaces.
- International design — units as the primary hazard.
- Motion — why charts do not animate.
- Accessibility — non-text contrast and the greyscale test.