Charts · Distributions & comparisons
ErrorBarChart Effect by trial arm Effect by trial arm
Effect by trial arm arm effect low high Arm A 1.61 1.01 2.07 Arm B 0.2 -0.16 1.04 Arm C 1.25 0.35 2.79 Arm D 1.64 0.74 2.26 Arm E 0.45 -0.52 2.54 Arm F 0.34 -0.57 2.41 Arm G 1.03 0.14 1.85 Arm H 1.04 -0.44 2.67
Effect by trial arm Effect by trial arm
Effect by trial arm arm effect low high Arm A 1.61 1.01 2.07 Arm B 0.2 -0.16 1.04 Arm C 1.25 0.35 2.79 Arm D 1.64 0.74 2.26 Arm E 0.45 -0.52 2.54 Arm F 0.34 -0.57 2.41 Arm G 1.03 0.14 1.85 Arm H 1.04 -0.44 2.67
mode="precision" Effect by trial arm Effect by trial arm
Effect by trial arm arm effect low high Arm A 1.61 1.01 2.07 Arm B 0.2 -0.16 1.04 Arm C 1.25 0.35 2.79 Arm D 1.64 0.74 2.26 Arm E 0.45 -0.52 2.54 Arm F 0.34 -0.57 2.41 Arm G 1.03 0.14 1.85 Arm H 1.04 -0.44 2.67
substrate="green" Effect by trial arm Effect by trial arm
Effect by trial arm arm effect low high Arm A 1.61 1.01 2.07 Arm B 0.2 -0.16 1.04 Arm C 1.25 0.35 2.79 Arm D 1.64 0.74 2.26 Arm E 0.45 -0.52 2.54 Arm F 0.34 -0.57 2.41 Arm G 1.03 0.14 1.85 Arm H 1.04 -0.44 2.67
ground="cyanotype" The chart above, in each framework. Pick a framework once and every example on the site follows it.
React Vue Angular Reflex
npm install @silverpoint/react @silverpoint/grounds @silverpoint/fontsimport '@silverpoint/fonts/fonts.css';
import '@silverpoint/grounds/styles.css';
import { ErrorBarChart } from '@silverpoint/react/error-bar-chart';
const data = [
{ arm: 'Arm A', effect: 1.61, low: 1.01, high: 2.07 },
{ arm: 'Arm B', effect: 0.2, low: -0.16, high: 1.04 },
{ arm: 'Arm C', effect: 1.25, low: 0.35, high: 2.79 },
{ arm: 'Arm D', effect: 1.64, low: 0.74, high: 2.26 },
{ arm: 'Arm E', effect: 0.45, low: -0.52, high: 2.54 },
{ arm: 'Arm F', effect: 0.34, low: -0.57, high: 2.41 },
{ arm: 'Arm G', effect: 1.03, low: 0.14, high: 1.85 },
{ arm: 'Arm H', effect: 1.04, low: -0.44, high: 2.67 },
];
export default function App() {
return (
<div style={{ width: 480 }}>
<ErrorBarChart
data={data}
labelKey="arm"
estimateKey="effect"
lowKey="low"
highKey="high"
title="Effect by trial arm"
/>
</div>
);
}npm install @silverpoint/vue @silverpoint/grounds @silverpoint/fonts<script setup lang="ts">
import '@silverpoint/fonts/fonts.css';
import '@silverpoint/grounds/styles.css';
import { SpErrorBarChart } from '@silverpoint/vue/error-bar-chart';
const data = [
{ arm: 'Arm A', effect: 1.61, low: 1.01, high: 2.07 },
{ arm: 'Arm B', effect: 0.2, low: -0.16, high: 1.04 },
{ arm: 'Arm C', effect: 1.25, low: 0.35, high: 2.79 },
{ arm: 'Arm D', effect: 1.64, low: 0.74, high: 2.26 },
{ arm: 'Arm E', effect: 0.45, low: -0.52, high: 2.54 },
{ arm: 'Arm F', effect: 0.34, low: -0.57, high: 2.41 },
{ arm: 'Arm G', effect: 1.03, low: 0.14, high: 1.85 },
{ arm: 'Arm H', effect: 1.04, low: -0.44, high: 2.67 },
];
</script>
<template>
<div style="width: 480px">
<SpErrorBarChart
:data="data"
label-key="arm"
estimate-key="effect"
low-key="low"
high-key="high"
title="Effect by trial arm"
/>
</div>
</template>npm install @silverpoint/angular @silverpoint/grounds @silverpoint/fonts// src/styles.css:
// @import '@silverpoint/fonts/fonts.css';
// @import '@silverpoint/grounds/styles.css';
import { Component } from '@angular/core';
import { SpErrorBarChart } from '@silverpoint/angular/error-bar-chart';
@Component({
selector: 'app-root',
imports: [SpErrorBarChart],
template: `
<div style="width: 480px">
<sp-error-bar-chart
[data]="data"
labelKey="arm"
estimateKey="effect"
lowKey="low"
highKey="high"
title="Effect by trial arm"
/>
</div>
`,
})
export class App {
protected readonly data = [
{ arm: 'Arm A', effect: 1.61, low: 1.01, high: 2.07 },
{ arm: 'Arm B', effect: 0.2, low: -0.16, high: 1.04 },
{ arm: 'Arm C', effect: 1.25, low: 0.35, high: 2.79 },
{ arm: 'Arm D', effect: 1.64, low: 0.74, high: 2.26 },
{ arm: 'Arm E', effect: 0.45, low: -0.52, high: 2.54 },
{ arm: 'Arm F', effect: 0.34, low: -0.57, high: 2.41 },
{ arm: 'Arm G', effect: 1.03, low: 0.14, high: 1.85 },
{ arm: 'Arm H', effect: 1.04, low: -0.44, high: 2.67 },
];
}pip install reflex-silverpoint-reactimport reflex as rx
from reflex_silverpoint_react import error_bar_chart
DATA = [
{"arm": "Arm A", "effect": 1.61, "low": 1.01, "high": 2.07},
{"arm": "Arm B", "effect": 0.2, "low": -0.16, "high": 1.04},
{"arm": "Arm C", "effect": 1.25, "low": 0.35, "high": 2.79},
{"arm": "Arm D", "effect": 1.64, "low": 0.74, "high": 2.26},
{"arm": "Arm E", "effect": 0.45, "low": -0.52, "high": 2.54},
{"arm": "Arm F", "effect": 0.34, "low": -0.57, "high": 2.41},
{"arm": "Arm G", "effect": 1.03, "low": 0.14, "high": 1.85},
{"arm": "Arm H", "effect": 1.04, "low": -0.44, "high": 2.67},
]
def index() -> rx.Component:
return rx.box(
error_bar_chart(
data=DATA,
label_key="arm",
estimate_key="effect",
low_key="low",
high_key="high",
title="Effect by trial arm",
),
width="480px",
)
app = rx.App()
app.add_page(index)Each chart has its own subpath, so a bundle only carries the charts it uses. Every adapter also exports every chart from its barrel.
Framework Import React import { ErrorBarChart } from '@silverpoint/react/error-bar-chart';Vue import { SpErrorBarChart } from '@silverpoint/vue/error-bar-chart';Angular import { SpErrorBarChart } from '@silverpoint/angular/error-bar-chart'; // <sp-error-bar-chart>Reflex from reflex_silverpoint_react import error_bar_chart
The props ErrorBarChart adds to the ones every chart takes. Accessor props (…Key, keys, names) name fields of your rows and are ignored without data.
React / Angular Vue Reflex Type Description labelKeylabel-keylabel_keyAccessor<string>— estimateKeyestimate-keyestimate_keyAccessor<number | null | undefined>— lowKeylow-keylow_keyAccessor<number | null | undefined>— highKeyhigh-keyhigh_keyAccessor<number | null | undefined>— referencereferencereferencenumberA reference value drawn as a dotted rule. orientationorientationorientationChartOrientationrows by default, as a forest plot reads.
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 / Angular Vue Reflex Type Description 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—
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 } }.
Framework Active item Selection Custom readout React onActiveChangeonSelecttooltip={(item, readout) => …}Vue @active-change@select<template #tooltip>Angular (activeChange)(select)<ng-template spTooltip>Reflex on_active_changeon_selecttooltip=tooltip_template(…)
Interaction and readouts → Report it
Found something wrong with ErrorBarChart ? Open an issue on GitHub — the form comes pre-filled with the chart and the version.