Skip to content
silverpoint
Documentation menu

Charts · Fields & networks

NetworkChart

A node-link graph. Family: Fields & networks · chart 60 of 60.
Library networkLibrary network
Library network
nodegroupdegreeweight
Archive 1Archive3
Archive 2Archive9
Archive 3Archive5
Archive 4Archive8
Archive 5Archive5
Archive 6Archive6
Archive 7Archive6
Archive 8Archive3
Archive 9Archive5
Archive 10Archive6
Studio 1Studio3
Studio 2Studio4
Studio 3Studio3
Studio 4Studio3
Studio 5Studio7
Studio 6Studio4
Studio 7Studio4
Studio 8Studio4
Studio 9Studio6
Studio 10Studio3
Lab 1Lab5
Lab 2Lab5
Lab 3Lab1
Lab 4Lab2
Lab 5Lab2
Lab 6Lab4
Lab 7Lab2
Lab 8Lab4
Lab 9Lab4
Lab 10Lab2
Press 1Press6
Press 2Press4
Press 3Press10
Press 4Press6
Press 5Press1
Press 6Press5
Press 7Press6
Press 8Press7
Press 9Press3
Press 10Press4
Studio 5 – Studio 25
Press 10 – Archive 61
Press 1 – Press 75
Studio 6 – Studio 41
Press 3 – Lab 61
Studio 8 – Studio 55
Archive 5 – Archive 72
Press 2 – Press 13
Archive 4 – Archive 25
Lab 8 – Studio 82
Archive 4 – Archive 11
Press 3 – Studio 95
Lab 1 – Studio 55
Studio 7 – Studio 94
Press 1 – Press 45
Archive 2 – Archive 91
Archive 3 – Archive 52
Press 10 – Press 83
Press 4 – Archive 101
Press 4 – Press 102
Lab 10 – Studio 94
Lab 6 – Lab 24
Archive 1 – Studio 34
Lab 9 – Lab 22
Press 3 – Press 62
Press 6 – Press 14
Studio 8 – Studio 24
Archive 9 – Archive 83
Lab 2 – Lab 13
Archive 3 – Studio 103
Press 9 – Press 23
Press 4 – Press 71
Studio 6 – Studio 54
Studio 3 – Studio 55
Archive 10 – Archive 43
Studio 1 – Studio 91
Archive 2 – Archive 73
Studio 8 – Studio 94
Archive 6 – Archive 41
Press 3 – Press 12
Studio 7 – Studio 54
Archive 2 – Archive 51
Press 8 – Press 14
Archive 2 – Archive 12
Studio 6 – Studio 75
Archive 4 – Press 83
Studio 4 – Studio 11
Press 3 – Archive 102
Archive 3 – Archive 61
Studio 1 – Studio 24
Archive 5 – Archive 104
Lab 7 – Lab 41
Archive 4 – Archive 52
Archive 7 – Studio 43
Press 7 – Lab 83
Press 2 – Press 33
Lab 9 – Lab 45
Press 8 – Archive 61
Lab 6 – Lab 92
Press 9 – Press 83
Studio 10 – Lab 53
Press 8 – Press 33
Studio 9 – Studio 104
Lab 1 – Lab 35
Archive 3 – Archive 24
Lab 6 – Lab 53
Lab 2 – Studio 72
Archive 8 – Archive 41
Press 4 – Archive 32
Lab 8 – Archive 74
Press 5 – Press 35
Press 6 – Press 92
Press 7 – Press 103
Archive 6 – Archive 24
Archive 9 – Archive 41
Lab 1 – Archive 101
Press 8 – Press 64
Archive 2 – Archive 105
Lab 2 – Lab 105
Archive 8 – Archive 72
Press 3 – Studio 62
Press 4 – Press 63
Lab 8 – Studio 54
Studio 2 – Studio 33
Lab 9 – Lab 14
Archive 9 – Archive 65
Press 7 – Press 32
Press 7 – Press 21
Archive 7 – Archive 95
Lab 7 – Archive 24
Library networkLibrary network
Library network
nodegroupdegreeweight
Archive 1Archive3
Archive 2Archive9
Archive 3Archive5
Archive 4Archive8
Archive 5Archive5
Archive 6Archive6
Archive 7Archive6
Archive 8Archive3
Archive 9Archive5
Archive 10Archive6
Studio 1Studio3
Studio 2Studio4
Studio 3Studio3
Studio 4Studio3
Studio 5Studio7
Studio 6Studio4
Studio 7Studio4
Studio 8Studio4
Studio 9Studio6
Studio 10Studio3
Lab 1Lab5
Lab 2Lab5
Lab 3Lab1
Lab 4Lab2
Lab 5Lab2
Lab 6Lab4
Lab 7Lab2
Lab 8Lab4
Lab 9Lab4
Lab 10Lab2
Press 1Press6
Press 2Press4
Press 3Press10
Press 4Press6
Press 5Press1
Press 6Press5
Press 7Press6
Press 8Press7
Press 9Press3
Press 10Press4
Studio 5 – Studio 25
Press 10 – Archive 61
Press 1 – Press 75
Studio 6 – Studio 41
Press 3 – Lab 61
Studio 8 – Studio 55
Archive 5 – Archive 72
Press 2 – Press 13
Archive 4 – Archive 25
Lab 8 – Studio 82
Archive 4 – Archive 11
Press 3 – Studio 95
Lab 1 – Studio 55
Studio 7 – Studio 94
Press 1 – Press 45
Archive 2 – Archive 91
Archive 3 – Archive 52
Press 10 – Press 83
Press 4 – Archive 101
Press 4 – Press 102
Lab 10 – Studio 94
Lab 6 – Lab 24
Archive 1 – Studio 34
Lab 9 – Lab 22
Press 3 – Press 62
Press 6 – Press 14
Studio 8 – Studio 24
Archive 9 – Archive 83
Lab 2 – Lab 13
Archive 3 – Studio 103
Press 9 – Press 23
Press 4 – Press 71
Studio 6 – Studio 54
Studio 3 – Studio 55
Archive 10 – Archive 43
Studio 1 – Studio 91
Archive 2 – Archive 73
Studio 8 – Studio 94
Archive 6 – Archive 41
Press 3 – Press 12
Studio 7 – Studio 54
Archive 2 – Archive 51
Press 8 – Press 14
Archive 2 – Archive 12
Studio 6 – Studio 75
Archive 4 – Press 83
Studio 4 – Studio 11
Press 3 – Archive 102
Archive 3 – Archive 61
Studio 1 – Studio 24
Archive 5 – Archive 104
Lab 7 – Lab 41
Archive 4 – Archive 52
Archive 7 – Studio 43
Press 7 – Lab 83
Press 2 – Press 33
Lab 9 – Lab 45
Press 8 – Archive 61
Lab 6 – Lab 92
Press 9 – Press 83
Studio 10 – Lab 53
Press 8 – Press 33
Studio 9 – Studio 104
Lab 1 – Lab 35
Archive 3 – Archive 24
Lab 6 – Lab 53
Lab 2 – Studio 72
Archive 8 – Archive 41
Press 4 – Archive 32
Lab 8 – Archive 74
Press 5 – Press 35
Press 6 – Press 92
Press 7 – Press 103
Archive 6 – Archive 24
Archive 9 – Archive 41
Lab 1 – Archive 101
Press 8 – Press 64
Archive 2 – Archive 105
Lab 2 – Lab 105
Archive 8 – Archive 72
Press 3 – Studio 62
Press 4 – Press 63
Lab 8 – Studio 54
Studio 2 – Studio 33
Lab 9 – Lab 14
Archive 9 – Archive 65
Press 7 – Press 32
Press 7 – Press 21
Archive 7 – Archive 95
Lab 7 – Archive 24
mode="precision"
Library networkLibrary network
Library network
nodegroupdegreeweight
Archive 1Archive3
Archive 2Archive9
Archive 3Archive5
Archive 4Archive8
Archive 5Archive5
Archive 6Archive6
Archive 7Archive6
Archive 8Archive3
Archive 9Archive5
Archive 10Archive6
Studio 1Studio3
Studio 2Studio4
Studio 3Studio3
Studio 4Studio3
Studio 5Studio7
Studio 6Studio4
Studio 7Studio4
Studio 8Studio4
Studio 9Studio6
Studio 10Studio3
Lab 1Lab5
Lab 2Lab5
Lab 3Lab1
Lab 4Lab2
Lab 5Lab2
Lab 6Lab4
Lab 7Lab2
Lab 8Lab4
Lab 9Lab4
Lab 10Lab2
Press 1Press6
Press 2Press4
Press 3Press10
Press 4Press6
Press 5Press1
Press 6Press5
Press 7Press6
Press 8Press7
Press 9Press3
Press 10Press4
Studio 5 – Studio 25
Press 10 – Archive 61
Press 1 – Press 75
Studio 6 – Studio 41
Press 3 – Lab 61
Studio 8 – Studio 55
Archive 5 – Archive 72
Press 2 – Press 13
Archive 4 – Archive 25
Lab 8 – Studio 82
Archive 4 – Archive 11
Press 3 – Studio 95
Lab 1 – Studio 55
Studio 7 – Studio 94
Press 1 – Press 45
Archive 2 – Archive 91
Archive 3 – Archive 52
Press 10 – Press 83
Press 4 – Archive 101
Press 4 – Press 102
Lab 10 – Studio 94
Lab 6 – Lab 24
Archive 1 – Studio 34
Lab 9 – Lab 22
Press 3 – Press 62
Press 6 – Press 14
Studio 8 – Studio 24
Archive 9 – Archive 83
Lab 2 – Lab 13
Archive 3 – Studio 103
Press 9 – Press 23
Press 4 – Press 71
Studio 6 – Studio 54
Studio 3 – Studio 55
Archive 10 – Archive 43
Studio 1 – Studio 91
Archive 2 – Archive 73
Studio 8 – Studio 94
Archive 6 – Archive 41
Press 3 – Press 12
Studio 7 – Studio 54
Archive 2 – Archive 51
Press 8 – Press 14
Archive 2 – Archive 12
Studio 6 – Studio 75
Archive 4 – Press 83
Studio 4 – Studio 11
Press 3 – Archive 102
Archive 3 – Archive 61
Studio 1 – Studio 24
Archive 5 – Archive 104
Lab 7 – Lab 41
Archive 4 – Archive 52
Archive 7 – Studio 43
Press 7 – Lab 83
Press 2 – Press 33
Lab 9 – Lab 45
Press 8 – Archive 61
Lab 6 – Lab 92
Press 9 – Press 83
Studio 10 – Lab 53
Press 8 – Press 33
Studio 9 – Studio 104
Lab 1 – Lab 35
Archive 3 – Archive 24
Lab 6 – Lab 53
Lab 2 – Studio 72
Archive 8 – Archive 41
Press 4 – Archive 32
Lab 8 – Archive 74
Press 5 – Press 35
Press 6 – Press 92
Press 7 – Press 103
Archive 6 – Archive 24
Archive 9 – Archive 41
Lab 1 – Archive 101
Press 8 – Press 64
Archive 2 – Archive 105
Lab 2 – Lab 105
Archive 8 – Archive 72
Press 3 – Studio 62
Press 4 – Press 63
Lab 8 – Studio 54
Studio 2 – Studio 33
Lab 9 – Lab 14
Archive 9 – Archive 65
Press 7 – Press 32
Press 7 – Press 21
Archive 7 – Archive 95
Lab 7 – Archive 24
substrate="green"
Library networkLibrary network
Library network
nodegroupdegreeweight
Archive 1Archive3
Archive 2Archive9
Archive 3Archive5
Archive 4Archive8
Archive 5Archive5
Archive 6Archive6
Archive 7Archive6
Archive 8Archive3
Archive 9Archive5
Archive 10Archive6
Studio 1Studio3
Studio 2Studio4
Studio 3Studio3
Studio 4Studio3
Studio 5Studio7
Studio 6Studio4
Studio 7Studio4
Studio 8Studio4
Studio 9Studio6
Studio 10Studio3
Lab 1Lab5
Lab 2Lab5
Lab 3Lab1
Lab 4Lab2
Lab 5Lab2
Lab 6Lab4
Lab 7Lab2
Lab 8Lab4
Lab 9Lab4
Lab 10Lab2
Press 1Press6
Press 2Press4
Press 3Press10
Press 4Press6
Press 5Press1
Press 6Press5
Press 7Press6
Press 8Press7
Press 9Press3
Press 10Press4
Studio 5 – Studio 25
Press 10 – Archive 61
Press 1 – Press 75
Studio 6 – Studio 41
Press 3 – Lab 61
Studio 8 – Studio 55
Archive 5 – Archive 72
Press 2 – Press 13
Archive 4 – Archive 25
Lab 8 – Studio 82
Archive 4 – Archive 11
Press 3 – Studio 95
Lab 1 – Studio 55
Studio 7 – Studio 94
Press 1 – Press 45
Archive 2 – Archive 91
Archive 3 – Archive 52
Press 10 – Press 83
Press 4 – Archive 101
Press 4 – Press 102
Lab 10 – Studio 94
Lab 6 – Lab 24
Archive 1 – Studio 34
Lab 9 – Lab 22
Press 3 – Press 62
Press 6 – Press 14
Studio 8 – Studio 24
Archive 9 – Archive 83
Lab 2 – Lab 13
Archive 3 – Studio 103
Press 9 – Press 23
Press 4 – Press 71
Studio 6 – Studio 54
Studio 3 – Studio 55
Archive 10 – Archive 43
Studio 1 – Studio 91
Archive 2 – Archive 73
Studio 8 – Studio 94
Archive 6 – Archive 41
Press 3 – Press 12
Studio 7 – Studio 54
Archive 2 – Archive 51
Press 8 – Press 14
Archive 2 – Archive 12
Studio 6 – Studio 75
Archive 4 – Press 83
Studio 4 – Studio 11
Press 3 – Archive 102
Archive 3 – Archive 61
Studio 1 – Studio 24
Archive 5 – Archive 104
Lab 7 – Lab 41
Archive 4 – Archive 52
Archive 7 – Studio 43
Press 7 – Lab 83
Press 2 – Press 33
Lab 9 – Lab 45
Press 8 – Archive 61
Lab 6 – Lab 92
Press 9 – Press 83
Studio 10 – Lab 53
Press 8 – Press 33
Studio 9 – Studio 104
Lab 1 – Lab 35
Archive 3 – Archive 24
Lab 6 – Lab 53
Lab 2 – Studio 72
Archive 8 – Archive 41
Press 4 – Archive 32
Lab 8 – Archive 74
Press 5 – Press 35
Press 6 – Press 92
Press 7 – Press 103
Archive 6 – Archive 24
Archive 9 – Archive 41
Lab 1 – Archive 101
Press 8 – Press 64
Archive 2 – Archive 105
Lab 2 – Lab 105
Archive 8 – Archive 72
Press 3 – Studio 62
Press 4 – Press 63
Lab 8 – Studio 54
Studio 2 – Studio 33
Lab 9 – Lab 14
Archive 9 – Archive 65
Press 7 – Press 32
Press 7 – Press 21
Archive 7 – Archive 95
Lab 7 – Archive 24
ground="cyanotype"

Example

The chart above, in each framework. Pick a framework once and every example on the site follows it. `data` holds the links; `nodes` names and groups the nodes. The force layout is the same for a given `seed`, on the server and in every browser.

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

const data = [
  { source: 's05', target: 's02', weight: 5 },
  { source: 'p10', target: 'a06', weight: 1 },
  { source: 'p01', target: 'p07', weight: 5 },
  { source: 's06', target: 's04', weight: 1 },
  { source: 'p03', target: 'l06', weight: 1 },
  { source: 's08', target: 's05', weight: 5 },
  { source: 'a05', target: 'a07', weight: 2 },
  { source: 'p02', target: 'p01', weight: 3 },
  { source: 'a04', target: 'a02', weight: 5 },
  { source: 'l08', target: 's08', weight: 2 },
  { source: 'a04', target: 'a01', weight: 1 },
  { source: 'p03', target: 's09', weight: 5 },
  // … 78 more rows of the same shape
];

const nodes = [
  { id: 'a01', label: 'Archive 1', group: 'Archive' },
  { id: 'a02', label: 'Archive 2', group: 'Archive' },
  { id: 'a03', label: 'Archive 3', group: 'Archive' },
  { id: 'a04', label: 'Archive 4', group: 'Archive' },
  { id: 'a05', label: 'Archive 5', group: 'Archive' },
  { id: 'a06', label: 'Archive 6', group: 'Archive' },
  { id: 'a07', label: 'Archive 7', group: 'Archive' },
  { id: 'a08', label: 'Archive 8', group: 'Archive' },
  { id: 'a09', label: 'Archive 9', group: 'Archive' },
  { id: 'a10', label: 'Archive 10', group: 'Archive' },
  { id: 's01', label: 'Studio 1', group: 'Studio' },
  { id: 's02', label: 'Studio 2', group: 'Studio' },
  // … 28 more rows of the same shape
];

export default function App() {
  return (
    <div style={{ width: 480 }}>
      <NetworkChart
        data={data}
        sourceKey="source"
        targetKey="target"
        valueKey="weight"
        nodes={nodes}
        title="Library network"
      />
    </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 { NetworkChart } from '@silverpoint/react/network-chart';
Vueimport { SpNetworkChart } from '@silverpoint/vue/network-chart';
Angularimport { SpNetworkChart } from '@silverpoint/angular/network-chart'; // <sp-network-chart>
Reflexfrom reflex_silverpoint_react import network_chart

Props

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

React / AngularVueReflexTypeDescription
sourceKeysource-keysource_keyAccessor<string>—
targetKeytarget-keytarget_keyAccessor<string>—
valueKeyvalue-keyvalue_keyAccessor<number | null | undefined>1 by default.
nodesnodesnodesreadonly NetworkNode[]The nodes, as data; the distinct ends of the links by default.
iterationsiterationsiterationsnumberLayout iterations; 300 by default.

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 NetworkChart? Open an issue on GitHub — the form comes pre-filled with the chart and the version.