Dynamic Biplot Visualisations with moveEZ


Centre for Multi-Dimensional Data Visualisation (MuViSU),
University of the Witwatersrand,
Stellenbosch University

IFCS 2026 | 19th Conference of the International Federation of Classification Societies

Milan, Italy

14-16 July 2026

Raeesa Ganey & Johané Nienkemper-Swanepoel
raeesa.ganey@wits.ac.za & nienkemperj@sun.ac.za

moveEZ - pronounced move easy

An R package for animated biplots.

Ganey R & Nienkemper-Swanepoel J (2025). moveEZ: Animated Biplots. R package version 1.2.0, https://CRAN.R-project.org/package=moveEZ.

The problem

Multivariate data are everywhere but the structure of those data rarely stands still.

  • A standard biplot is a rich, interpretable summary of multivariate structure at a single level of a factor.
  • When data are recorded across many ordered levels - years, treatments, experimental conditions - a single static biplot is not enough.
  • Researchers end up comparing a wall of side-by-side plots, where gradual drift, emerging structure, and subtle shifts in associations are easy to miss.

moveEZ turns the biplot from a static snapshot into a temporal / sequential narrative - smooth animated transitions of how observation coordinates and axis orientations shift from one level to the next.

The data: ERA5 over European capitals

Fifth-generation ECMWF atmospheric reanalysis (ERA5), via the Copernicus Climate Data Store.

  • 36 European capital cities
  • 23 years of annual observations
  • Köppen-Geiger Regimes
  • Aggregated from monthly ERA5 reanalysis
  • Observations: one city–year
  • Vectors: climate variables
Variable Description
summer_temp Hottest month temperature (°C)
winter_temp Coldest month temperature (°C)
total_precip Annual total precipitation (mm)
ssr_total Annual total solar radiation (J/m²)
wind_mean Mean annual wind speed (m/s)

Biplots in one slide

PCA projects high-dimensional data onto a lower-dimensional plane:

  • Observations → points
  • Variables → vectors

This dual display lets us read, simultaneously:

  • clusters of similar observations,
  • associations among variables,
  • how individual observations score on each measured condition.

But this is a single snapshot. Let the controlled factor be time and the points and axes begin to move. Capturing that movement is exactly what moveEZ is built to do.

moveEZ Frameworks

The data are sliced by the time variable - one biplot per level and the slices are fed through the moveEZ framework, which animates the transition from one to the next.

moveEZ provides three functions of increasing methodological complexity:

moveplot()
Fixed variable frame

Single PCA on full dataset.
Variable vectors fixed; only sample positions animated across time levels.
moveplot2()
Dynamic frame

Separate PCA per time slice.
Both samples and variable vectors evolve. Manual alignment for sign indeterminacy.
moveplot3()
Dynamic frame + GPA

Extends moveplot2() with automated alignment via Generalised Procrustes Analysis.

moveplot() - movements across time

Slice the biplot by year then animate the transitions.

moveplot() - from regimes to cities

The same function, regrouped - with a hand picked set of cities.

moveplot2() - a biplot per regime, aligned

Set time.var = "regime" to one biplot per regime, aligned so they read side by side.

Mediterranean

moveplot3() - movement toward a target

Animate each regime’s cities across the years towards a target, then quantify the change with fit- and bias-based measures.

Construction: Separate biplots are constructed for each time slice of the data, time.var = "year". The biplots are then aligned according to a specific target:

  • Default: the average of the separate biplot coordinates is calculated and used as a target.
  • Option: specify a target year (e.g., target = 1950)

Alignment: Generalised orthogonal Procrustes Analysis (GPA) is used to transform each biplot to the target, allowing for translation, scaling, rotation, and reflection. This produces an aligned animation that exposes subtle temporal changes in climate structure.

Evaluation: Goodness-of-fit measures (RMSB, AMB, bias) quantify how closely each year’s climate aligns with the target structure, revealing periods when Mediterranean conditions depart from or return to the baseline reference frame.

Mediterranean with moveplot3() - aligned with 1950

Evaluation metrics over time

Evaluation metrics over time

Why this matters for climate change

Climate data is multivariate and non-stationary: not just rising means, but shifting relationships among variables, changing seasonality, and regional trajectories that diverge from one another.

  • A single-variable trend - a temperature-anomaly line - misses the joint structure: how the variables move together. A biplot keeps that multivariate structure intact.
  • Animation exposes what decadal means hide: seasonal cycles deforming in timing and amplitude, couplings among variables tightening or loosening, and the direction and pace of each region’s drift through the space.
  • It reframes a central climate question as something you can see