Visualization VocabularyDataviz vocabulary
Diagram: parallel coordinates
Drawing: Adrien Taudière (CC0)
ggplot2 example: parallel coordinates
Adrien Taudière (CC0); R code ↓; data: palmerpenguins (Horst, Hill & Gorman 2020) (CC0)
Wikidata image: parallel coordinates
Di Cook (Public domain); Wikimedia Commons; item Q932996

chart

parallel coordinates

also: parallel coordinate plot

Parallel axes crossed by one polyline per observation.

coordonnées parallèles

Axes parallèles traversés par une ligne brisée par observation.

Classification

Channels

Variants

Attestation

Scientific literature

OpenAlex: 1 334 papers since 1983, 15% in the last five years; mostly in Computer Science, Engineering, Biochemistry, Genetics and Molecular Biology; Wikidata

Seminal references

R packages

R code of the ggplot2 example

library(ggplot2)
library(dplyr)
library(tidyr)
library(palmerpenguins)

measures <- c(`Bill length` = "bill_length_mm", `Bill depth` = "bill_depth_mm",
              `Flipper length` = "flipper_length_mm", `Body mass` = "body_mass_g")

## Each measure rescaled from its minimum (0) to its maximum (1).
lines <- penguins |>
  filter(!is.na(body_mass_g)) |>
  mutate(penguin = row_number()) |>
  select(penguin, species, all_of(measures)) |>
  pivot_longer(all_of(names(measures)), names_to = "measure") |>
  mutate(measure = factor(measure, levels = names(measures))) |>
  group_by(measure) |>
  mutate(value = (value - min(value)) / (max(value) - min(value))) |>
  ungroup()

## Each species is named on the axis where it stands apart.
ends <- lines |>
  group_by(species, measure) |>
  summarise(value = median(value), .groups = "drop") |>
  filter(measure == ifelse(species == "Gentoo", "Body mass", "Bill length")) |>
  mutate(right = measure == "Body mass")

p <- ggplot(lines, aes(x = measure, y = value, group = penguin, colour = species)) +
  geom_line(alpha = 0.3, linewidth = 0.3) +
  geom_text(data = ends, aes(label = species, group = NULL, hjust = ifelse(right, 0, 1),
                            x = as.numeric(measure) + ifelse(right, 0.08, -0.08)),
            size = 3.3, fontface = "bold") +
  scale_x_discrete(expand = expansion(add = c(0.7, 0.7))) +
  scale_y_continuous(breaks = c(0, 1), labels = c("Min", "Max")) +
  labs(title = "Gentoo penguins: shallow bills, long flippers, heavy bodies",
       subtitle = "One line per penguin, each measure from its minimum to its maximum",
       x = NULL, y = NULL,
       caption = "Data: palmerpenguins (Horst, Hill & Gorman 2020)") +
  theme_lex_viz(grid = "x", arrows = "") +
  theme(legend.position = "none")

Sources (40)

345 occurrences in the corpus; indexed by 9 books

Show the 40 sources

Cite this entry

Stable addresshttps://dataviz.adrientaudiere.com/en/term/parallel-coordinates.html

ReferenceTaudière Adrien. 2026. parallel coordinates. In Visualization Vocabulary, version 1.0.0. IdEst. https://dataviz.adrientaudiere.com/en/term/parallel-coordinates.html

BibTeX
@incollection{taudiere2026-parallel-coordinates,
  author    = {Taudière, Adrien},
  title     = {parallel coordinates},
  booktitle = {Visualization Vocabulary},
  year      = {2026},
  version   = {1.0.0},
  publisher = {IdEst},
  url       = {https://dataviz.adrientaudiere.com/en/term/parallel-coordinates.html},
  note      = {CC0 1.0}
}

Page created on 2026-10-13. Text last changed on 2026-11-10. Images last changed on 2026-11-02. Numbers computed on 2026-10-22.