Skip to content
silverpoint
Documentation menu

Charts · Hierarchies & dimensions

ParallelCoordinatesChart

One polyline per row across parallel axes. Family: Hierarchies & dimensions · chart 53 of 60.
BicyclesBicycles
Bicycles
modelmassgearspricerangerating
Model 0113.9153,4341251.5
Model 028.6223,897293.8
Model 0319.5133,202622.9
Model 0412.7152,760282.2
Model 0522.821485392.9
Model 0620.1221,178603.1
Model 0722.583,952404.8
Model 0822.6161,4071331.7
Model 0918.3182,9821263.4
Model 1019.1112,060242.1
Model 1113.992,430782.5
Model 1218.4111,046421.3
Model 1395343554
Model 1416.7133,837364
Model 1520.8183,6441074.8
Model 1616.2144,053281.5
Model 1715.9131,6641141.3
Model 1810.443,600751.9
Model 1920.6141,0521243.5
Model 201742,367503.5
Model 212162,545963.1
Model 2220.1223,6741153.2
Model 2318.7132,6861081.8
Model 2421.47863602.6
Model 2512.8124,163952.4
Model 2622.933,1481353.5
Model 2712.6123,1041244.2
Model 2818.2102,7651312.3
Model 2918.389221063.9
Model 3099886322
BicyclesBicycles
Bicycles
modelmassgearspricerangerating
Model 0113.9153,4341251.5
Model 028.6223,897293.8
Model 0319.5133,202622.9
Model 0412.7152,760282.2
Model 0522.821485392.9
Model 0620.1221,178603.1
Model 0722.583,952404.8
Model 0822.6161,4071331.7
Model 0918.3182,9821263.4
Model 1019.1112,060242.1
Model 1113.992,430782.5
Model 1218.4111,046421.3
Model 1395343554
Model 1416.7133,837364
Model 1520.8183,6441074.8
Model 1616.2144,053281.5
Model 1715.9131,6641141.3
Model 1810.443,600751.9
Model 1920.6141,0521243.5
Model 201742,367503.5
Model 212162,545963.1
Model 2220.1223,6741153.2
Model 2318.7132,6861081.8
Model 2421.47863602.6
Model 2512.8124,163952.4
Model 2622.933,1481353.5
Model 2712.6123,1041244.2
Model 2818.2102,7651312.3
Model 2918.389221063.9
Model 3099886322
mode="precision"
BicyclesBicycles
Bicycles
modelmassgearspricerangerating
Model 0113.9153,4341251.5
Model 028.6223,897293.8
Model 0319.5133,202622.9
Model 0412.7152,760282.2
Model 0522.821485392.9
Model 0620.1221,178603.1
Model 0722.583,952404.8
Model 0822.6161,4071331.7
Model 0918.3182,9821263.4
Model 1019.1112,060242.1
Model 1113.992,430782.5
Model 1218.4111,046421.3
Model 1395343554
Model 1416.7133,837364
Model 1520.8183,6441074.8
Model 1616.2144,053281.5
Model 1715.9131,6641141.3
Model 1810.443,600751.9
Model 1920.6141,0521243.5
Model 201742,367503.5
Model 212162,545963.1
Model 2220.1223,6741153.2
Model 2318.7132,6861081.8
Model 2421.47863602.6
Model 2512.8124,163952.4
Model 2622.933,1481353.5
Model 2712.6123,1041244.2
Model 2818.2102,7651312.3
Model 2918.389221063.9
Model 3099886322
substrate="green"
BicyclesBicycles
Bicycles
modelmassgearspricerangerating
Model 0113.9153,4341251.5
Model 028.6223,897293.8
Model 0319.5133,202622.9
Model 0412.7152,760282.2
Model 0522.821485392.9
Model 0620.1221,178603.1
Model 0722.583,952404.8
Model 0822.6161,4071331.7
Model 0918.3182,9821263.4
Model 1019.1112,060242.1
Model 1113.992,430782.5
Model 1218.4111,046421.3
Model 1395343554
Model 1416.7133,837364
Model 1520.8183,6441074.8
Model 1616.2144,053281.5
Model 1715.9131,6641141.3
Model 1810.443,600751.9
Model 1920.6141,0521243.5
Model 201742,367503.5
Model 212162,545963.1
Model 2220.1223,6741153.2
Model 2318.7132,6861081.8
Model 2421.47863602.6
Model 2512.8124,163952.4
Model 2622.933,1481353.5
Model 2712.6123,1041244.2
Model 2818.2102,7651312.3
Model 2918.389221063.9
Model 3099886322
ground="cyanotype"

Example

The chart above, in each framework. Pick a framework once and every example on the site follows it. `dimensions` is required: the columns, in axis order.

shell
npm install @silverpoint/react @silverpoint/grounds @silverpoint/fonts
tsx
import '@silverpoint/fonts/fonts.css';
import '@silverpoint/grounds/styles.css';
import { ParallelCoordinatesChart } from '@silverpoint/react/parallel-coordinates-chart';

const data = [
  { model: 'Model 01', mass: 13.9, gears: 15, price: 3434, range: 125, rating: 1.5 },
  { model: 'Model 02', mass: 8.6, gears: 22, price: 3897, range: 29, rating: 3.8 },
  { model: 'Model 03', mass: 19.5, gears: 13, price: 3202, range: 62, rating: 2.9 },
  { model: 'Model 04', mass: 12.7, gears: 15, price: 2760, range: 28, rating: 2.2 },
  { model: 'Model 05', mass: 22.8, gears: 21, price: 485, range: 39, rating: 2.9 },
  { model: 'Model 06', mass: 20.1, gears: 22, price: 1178, range: 60, rating: 3.1 },
  { model: 'Model 07', mass: 22.5, gears: 8, price: 3952, range: 40, rating: 4.8 },
  { model: 'Model 08', mass: 22.6, gears: 16, price: 1407, range: 133, rating: 1.7 },
  { model: 'Model 09', mass: 18.3, gears: 18, price: 2982, range: 126, rating: 3.4 },
  { model: 'Model 10', mass: 19.1, gears: 11, price: 2060, range: 24, rating: 2.1 },
  { model: 'Model 11', mass: 13.9, gears: 9, price: 2430, range: 78, rating: 2.5 },
  { model: 'Model 12', mass: 18.4, gears: 11, price: 1046, range: 42, rating: 1.3 },
  // … 18 more rows of the same shape
];

export default function App() {
  return (
    <div style={{ width: 480 }}>
      <ParallelCoordinatesChart
        data={data}
        labelKey="model"
        dimensions={['mass', 'gears', 'price', 'range', 'rating']}
        title="Bicycles"
      />
    </div>
  );
}

Import

Each chart has its own subpath, so a bundle only carries the charts it uses. Every adapter also exports every chart from its barrel.

FrameworkImport
Reactimport { ParallelCoordinatesChart } from '@silverpoint/react/parallel-coordinates-chart';
Vueimport { SpParallelCoordinatesChart } from '@silverpoint/vue/parallel-coordinates-chart';
Angularimport { SpParallelCoordinatesChart } from '@silverpoint/angular/parallel-coordinates-chart'; // <sp-parallel-coordinates-chart>
Reflexfrom reflex_silverpoint_react import parallel_coordinates_chart

Props

The props ParallelCoordinatesChart adds to the ones every chart takes. Accessor props (…Key, keys, names) name fields of your rows and are ignored without data.

React / AngularVueReflexTypeDescription
labelKeylabel-keylabel_keyAccessor<string | null | undefined>—
dimensionsdimensionsdimensionsreadonly string[]The dimension columns, in axis order.
domainsdomainsdomainsReadonly<Record<string, readonly [number, number]>>Axis domains by dimension; derived from the data when omitted.

Common props

Every chart also takes these. Framework conventions: camelCase in React and Angular, kebab-case in Vue templates, snake_case in Reflex. Read more about them.

Show the 22 common props
React / AngularVueReflexTypeDescription
datadatadatareadonly Datum[]Rows to draw. If omitted, the demo dataset is rendered (REQ-093) and the accessor props (…_key, keys, names) are ignored.
groundgroundgroundGroundRefStyle ground: silverpoint or cyanotype, or a ground object. Defaults to the app provider's, or silverpoint.
substratesubstratesubstrateSubstrateNamePrepared substrate within the ground (REQ-046).
modemodemodeInkModeink by default; precision disables inking (REQ-021).
seedseedseedSeedSeed. If omitted, it is derived from id stably (REQ-003).
idididstringStable identifier. If omitted, it is generated deterministically.
heightheightheightnumberHeight of the drawing area in px. Width is the container's unless pinned.
widthwidthwidthnumber—
chromechromechrome'card' | 'bare'card draws the full frame; bare only the drawing area (REQ-095).
hatchFillhatch-fillhatch_fill'tile' | 'per-shape'How areas are filled (REQ-029).
titletitletitlestring—
badgebadgebadgestring—
valuevaluevaluestring | number—
unitunitunitstring—
footerLeftfooter-leftfooter_leftstring—
footerRightfooter-rightfooter_rightstring—
labellabellabelstringAccessible name. If omitted, it is derived from title (REQ-120).
descriptiondescriptiondescriptionstringLong description for screen readers (REQ-120).
dataTabledata-tabledata_table'visible' | 'hidden' | 'none'Tabular alternative; hidden leaves it for assistive technology only (REQ-121).
localelocalelocalestring—
numberFormatnumber-formatnumber_formatIntl.NumberFormatOptions—
classNameclass-nameclass_namestring—

Events

Pointer and keyboard exploration are built in. The item under the pointer or focus is reported, and a click, Enter or Space selects it. The item is { seriesKey, index, datum, value, point: { x, y } }.

FrameworkActive itemSelectionCustom readout
ReactonActiveChangeonSelecttooltip={(item, readout) => …}
Vue@active-change@select<template #tooltip>
Angular(activeChange)(select)<ng-template spTooltip>
Reflexon_active_changeon_selecttooltip=tooltip_template(…)
Interaction and readouts →
Report it
Found something wrong with ParallelCoordinatesChart? Open an issue on GitHub — the form comes pre-filled with the chart and the version.