LiveChartSeries draws multiple line series that share an axis, time window, and crosshair.
Pass a SharedValue<SeriesConfig[]>.
Live example:
app/demo/multi-series.tsx
in the example app.Multiple live series with a toggleable legend
series.modify(...) (mutating each entry’s data array and value), or replace the whole array
with series.set(...). Avoid series.value = ....
Series options
EachSeriesConfig supports:
Legend
The legend renders toggle chips by default. Configure it with thelegend prop, and listen for
taps with onSeriesToggle:
Per-series dots
Thedot prop controls the live dots, their pulse, value lines, and inline labels.
Each dot is haloed by default — a contrasting outer ring (in the chart
background color) behind the colored dot, matching the single-series live dot so
overlapping series stay legible:
LiveChartSeries reference.
Per-series scrub tooltip
LiveChartSeries keeps its historical guide-only scrub by default. Opt into the
Morfi market-detail readout with scrub.seriesTooltip: a dashed vertical guide,
a top-centred bucket range, and one pill plus intersection dot for every visible
series. Close values stack instead of overlapping, wide pills flip to the
guide’s left near the right edge, and hidden legend series are omitted.
This feature is opt-in and backward compatible.
scrub={true},
scrub={{}}, and scrub={{ seriesTooltip: false }} all keep the existing
guide-only multi-series behavior. The existing scrub.tooltip property is
still the master switch; setting it to false also suppresses the per-series
pills.true to customize formatting and appearance:
formatSeriesValue and formatTimeRange run on the UI thread; keep them
worklet-safe, just like the chart’s formatValue and formatTime. Omit
bucketSeconds to infer the range width from the first visible series. The
range end is always clamped to the chart’s current-time anchor, so an
in-progress live bucket never displays a future end time.
Set alwaysShow to keep the value pills at the visible endpoints while the
user is not touching the chart. Idle mode deliberately hides the guide and
time pill; scrubbing restores the full readout.