Skip to content
silverpoint
Documentation menu

Charts · Hierarchies & dimensions

TreeChart

A tidy node-link tree. Family: Hierarchies & dimensions · chart 52 of 60.
City budgetCity budget
City budget
nodeamount
City budget69,364
City budget › Public works19,197, 27.7% of City budget
City budget › Public works › Roads2,150, 11.2% of Public works
City budget › Public works › Roads › Roads: staff1,760, 81.9% of Roads
City budget › Public works › Roads › Roads: materials390, 18.1% of Roads
City budget › Public works › Bridges6,154, 32.1% of Public works
City budget › Public works › Water mains2,878, 15% of Public works
City budget › Public works › Water mains › Water mains: staff2,069, 71.9% of Water mains
City budget › Public works › Water mains › Water mains: materials809, 28.1% of Water mains
City budget › Public works › Street lighting8,015, 41.8% of Public works
City budget › Parks10,626, 15.3% of City budget
City budget › Parks › Playgrounds5,030, 47.3% of Parks
City budget › Parks › Playgrounds › Playgrounds: staff2,165, 43% of Playgrounds
City budget › Parks › Playgrounds › Playgrounds: materials2,865, 57% of Playgrounds
City budget › Parks › Tree care2,835, 26.7% of Parks
City budget › Parks › Sports fields2,761, 26% of Parks
City budget › Parks › Sports fields › Sports fields: staff2,455, 88.9% of Sports fields
City budget › Parks › Sports fields › Sports fields: materials306, 11.1% of Sports fields
City budget › Safety13,294, 19.2% of City budget
City budget › Safety › Fire service1,805, 13.6% of Safety
City budget › Safety › Lifeguards5,224, 39.3% of Safety
City budget › Safety › Lifeguards › Lifeguards: staff2,271, 43.5% of Lifeguards
City budget › Safety › Lifeguards › Lifeguards: materials2,953, 56.5% of Lifeguards
City budget › Safety › Emergency planning6,265, 47.1% of Safety
City budget › Culture7,636, 11% of City budget
City budget › Culture › Libraries3,177, 41.6% of Culture
City budget › Culture › Libraries › Libraries: staff912, 28.7% of Libraries
City budget › Culture › Libraries › Libraries: materials2,265, 71.3% of Libraries
City budget › Culture › Museum2,999, 39.3% of Culture
City budget › Culture › Festivals1,460, 19.1% of Culture
City budget › Culture › Festivals › Festivals: staff1,275, 87.3% of Festivals
City budget › Culture › Festivals › Festivals: materials185, 12.7% of Festivals
City budget › Administration18,611, 26.8% of City budget
City budget › Administration › Payroll6,768, 36.4% of Administration
City budget › Administration › Records3,591, 19.3% of Administration
City budget › Administration › Records › Records: staff3,281, 91.4% of Records
City budget › Administration › Records › Records: materials310, 8.6% of Records
City budget › Administration › IT services8,252, 44.3% of Administration
City budgetCity budget
City budget
nodeamount
City budget69,364
City budget › Public works19,197, 27.7% of City budget
City budget › Public works › Roads2,150, 11.2% of Public works
City budget › Public works › Roads › Roads: staff1,760, 81.9% of Roads
City budget › Public works › Roads › Roads: materials390, 18.1% of Roads
City budget › Public works › Bridges6,154, 32.1% of Public works
City budget › Public works › Water mains2,878, 15% of Public works
City budget › Public works › Water mains › Water mains: staff2,069, 71.9% of Water mains
City budget › Public works › Water mains › Water mains: materials809, 28.1% of Water mains
City budget › Public works › Street lighting8,015, 41.8% of Public works
City budget › Parks10,626, 15.3% of City budget
City budget › Parks › Playgrounds5,030, 47.3% of Parks
City budget › Parks › Playgrounds › Playgrounds: staff2,165, 43% of Playgrounds
City budget › Parks › Playgrounds › Playgrounds: materials2,865, 57% of Playgrounds
City budget › Parks › Tree care2,835, 26.7% of Parks
City budget › Parks › Sports fields2,761, 26% of Parks
City budget › Parks › Sports fields › Sports fields: staff2,455, 88.9% of Sports fields
City budget › Parks › Sports fields › Sports fields: materials306, 11.1% of Sports fields
City budget › Safety13,294, 19.2% of City budget
City budget › Safety › Fire service1,805, 13.6% of Safety
City budget › Safety › Lifeguards5,224, 39.3% of Safety
City budget › Safety › Lifeguards › Lifeguards: staff2,271, 43.5% of Lifeguards
City budget › Safety › Lifeguards › Lifeguards: materials2,953, 56.5% of Lifeguards
City budget › Safety › Emergency planning6,265, 47.1% of Safety
City budget › Culture7,636, 11% of City budget
City budget › Culture › Libraries3,177, 41.6% of Culture
City budget › Culture › Libraries › Libraries: staff912, 28.7% of Libraries
City budget › Culture › Libraries › Libraries: materials2,265, 71.3% of Libraries
City budget › Culture › Museum2,999, 39.3% of Culture
City budget › Culture › Festivals1,460, 19.1% of Culture
City budget › Culture › Festivals › Festivals: staff1,275, 87.3% of Festivals
City budget › Culture › Festivals › Festivals: materials185, 12.7% of Festivals
City budget › Administration18,611, 26.8% of City budget
City budget › Administration › Payroll6,768, 36.4% of Administration
City budget › Administration › Records3,591, 19.3% of Administration
City budget › Administration › Records › Records: staff3,281, 91.4% of Records
City budget › Administration › Records › Records: materials310, 8.6% of Records
City budget › Administration › IT services8,252, 44.3% of Administration
mode="precision"
City budgetCity budget
City budget
nodeamount
City budget69,364
City budget › Public works19,197, 27.7% of City budget
City budget › Public works › Roads2,150, 11.2% of Public works
City budget › Public works › Roads › Roads: staff1,760, 81.9% of Roads
City budget › Public works › Roads › Roads: materials390, 18.1% of Roads
City budget › Public works › Bridges6,154, 32.1% of Public works
City budget › Public works › Water mains2,878, 15% of Public works
City budget › Public works › Water mains › Water mains: staff2,069, 71.9% of Water mains
City budget › Public works › Water mains › Water mains: materials809, 28.1% of Water mains
City budget › Public works › Street lighting8,015, 41.8% of Public works
City budget › Parks10,626, 15.3% of City budget
City budget › Parks › Playgrounds5,030, 47.3% of Parks
City budget › Parks › Playgrounds › Playgrounds: staff2,165, 43% of Playgrounds
City budget › Parks › Playgrounds › Playgrounds: materials2,865, 57% of Playgrounds
City budget › Parks › Tree care2,835, 26.7% of Parks
City budget › Parks › Sports fields2,761, 26% of Parks
City budget › Parks › Sports fields › Sports fields: staff2,455, 88.9% of Sports fields
City budget › Parks › Sports fields › Sports fields: materials306, 11.1% of Sports fields
City budget › Safety13,294, 19.2% of City budget
City budget › Safety › Fire service1,805, 13.6% of Safety
City budget › Safety › Lifeguards5,224, 39.3% of Safety
City budget › Safety › Lifeguards › Lifeguards: staff2,271, 43.5% of Lifeguards
City budget › Safety › Lifeguards › Lifeguards: materials2,953, 56.5% of Lifeguards
City budget › Safety › Emergency planning6,265, 47.1% of Safety
City budget › Culture7,636, 11% of City budget
City budget › Culture › Libraries3,177, 41.6% of Culture
City budget › Culture › Libraries › Libraries: staff912, 28.7% of Libraries
City budget › Culture › Libraries › Libraries: materials2,265, 71.3% of Libraries
City budget › Culture › Museum2,999, 39.3% of Culture
City budget › Culture › Festivals1,460, 19.1% of Culture
City budget › Culture › Festivals › Festivals: staff1,275, 87.3% of Festivals
City budget › Culture › Festivals › Festivals: materials185, 12.7% of Festivals
City budget › Administration18,611, 26.8% of City budget
City budget › Administration › Payroll6,768, 36.4% of Administration
City budget › Administration › Records3,591, 19.3% of Administration
City budget › Administration › Records › Records: staff3,281, 91.4% of Records
City budget › Administration › Records › Records: materials310, 8.6% of Records
City budget › Administration › IT services8,252, 44.3% of Administration
substrate="green"
City budgetCity budget
City budget
nodeamount
City budget69,364
City budget › Public works19,197, 27.7% of City budget
City budget › Public works › Roads2,150, 11.2% of Public works
City budget › Public works › Roads › Roads: staff1,760, 81.9% of Roads
City budget › Public works › Roads › Roads: materials390, 18.1% of Roads
City budget › Public works › Bridges6,154, 32.1% of Public works
City budget › Public works › Water mains2,878, 15% of Public works
City budget › Public works › Water mains › Water mains: staff2,069, 71.9% of Water mains
City budget › Public works › Water mains › Water mains: materials809, 28.1% of Water mains
City budget › Public works › Street lighting8,015, 41.8% of Public works
City budget › Parks10,626, 15.3% of City budget
City budget › Parks › Playgrounds5,030, 47.3% of Parks
City budget › Parks › Playgrounds › Playgrounds: staff2,165, 43% of Playgrounds
City budget › Parks › Playgrounds › Playgrounds: materials2,865, 57% of Playgrounds
City budget › Parks › Tree care2,835, 26.7% of Parks
City budget › Parks › Sports fields2,761, 26% of Parks
City budget › Parks › Sports fields › Sports fields: staff2,455, 88.9% of Sports fields
City budget › Parks › Sports fields › Sports fields: materials306, 11.1% of Sports fields
City budget › Safety13,294, 19.2% of City budget
City budget › Safety › Fire service1,805, 13.6% of Safety
City budget › Safety › Lifeguards5,224, 39.3% of Safety
City budget › Safety › Lifeguards › Lifeguards: staff2,271, 43.5% of Lifeguards
City budget › Safety › Lifeguards › Lifeguards: materials2,953, 56.5% of Lifeguards
City budget › Safety › Emergency planning6,265, 47.1% of Safety
City budget › Culture7,636, 11% of City budget
City budget › Culture › Libraries3,177, 41.6% of Culture
City budget › Culture › Libraries › Libraries: staff912, 28.7% of Libraries
City budget › Culture › Libraries › Libraries: materials2,265, 71.3% of Libraries
City budget › Culture › Museum2,999, 39.3% of Culture
City budget › Culture › Festivals1,460, 19.1% of Culture
City budget › Culture › Festivals › Festivals: staff1,275, 87.3% of Festivals
City budget › Culture › Festivals › Festivals: materials185, 12.7% of Festivals
City budget › Administration18,611, 26.8% of City budget
City budget › Administration › Payroll6,768, 36.4% of Administration
City budget › Administration › Records3,591, 19.3% of Administration
City budget › Administration › Records › Records: staff3,281, 91.4% of Records
City budget › Administration › Records › Records: materials310, 8.6% of Records
City budget › Administration › IT services8,252, 44.3% of Administration
ground="cyanotype"

Example

The chart above, in each framework. Pick a framework once and every example on the site follows it.

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

const data = [
  { id: 'budget', parent: null, name: 'City budget' },
  { id: 'works', parent: 'budget', name: 'Public works' },
  { id: 'works-01', parent: 'works', name: 'Roads' },
  { id: 'works-01-a', parent: 'works-01', name: 'Roads: staff', amount: 1760 },
  { id: 'works-01-b', parent: 'works-01', name: 'Roads: materials', amount: 390 },
  { id: 'works-02', parent: 'works', name: 'Bridges', amount: 6154 },
  { id: 'works-03', parent: 'works', name: 'Water mains' },
  { id: 'works-03-a', parent: 'works-03', name: 'Water mains: staff', amount: 2069 },
  { id: 'works-03-b', parent: 'works-03', name: 'Water mains: materials', amount: 809 },
  { id: 'works-04', parent: 'works', name: 'Street lighting', amount: 8015 },
  { id: 'parks', parent: 'budget', name: 'Parks' },
  { id: 'parks-05', parent: 'parks', name: 'Playgrounds' },
  // … 26 more rows of the same shape
];

export default function App() {
  return (
    <div style={{ width: 480 }}>
      <TreeChart
        data={data}
        idKey="id"
        parentKey="parent"
        labelKey="name"
        valueKey="amount"
        title="City budget"
      />
    </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 { TreeChart } from '@silverpoint/react/tree-chart';
Vueimport { SpTreeChart } from '@silverpoint/vue/tree-chart';
Angularimport { SpTreeChart } from '@silverpoint/angular/tree-chart'; // <sp-tree-chart>
Reflexfrom reflex_silverpoint_react import tree_chart

Props

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

React / AngularVueReflexTypeDescription
idKeyid-keyid_keyAccessor<string>—
parentKeyparent-keyparent_keyAccessor<string | null | undefined>null for the root.
labelKeylabel-keylabel_keyAccessor<string | null | undefined>—
valueKeyvalue-keyvalue_keyAccessor<number | null | undefined>—
orientationorientationorientation'horizontal' | 'vertical'—

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