Skip to main content
The chart reads its history and live value from Reanimated SharedValues. You append new points with data.modify(...) and update the live value with value.set(...); the engine interpolates and scrolls on the UI thread.

A minimal live chart

This example feeds the chart a random walk on an interval. In a real app you’d update the shared values from your websocket / data source instead.
Give the chart a sized container (a fixed height or flex: 1). It fills its parent via an absolute-positioned Skia canvas.
Use data.modify(...) for per-tick appends (it mutates in place on the UI thread) and value.set(...) / value.get() for the scalar — not data.value = .... The example app’s useSimulatedChartData hook drives every demo screen this way; in production you’d update these shared values from your own websocket / data source.

What to explore next

Line & area

Badges, value lines, gradients, and the live dot.

Candlestick

OHLC bars, live candle, and bucket sizing.

Multi-series

Several series with a toggleable legend.

Scrubbing

Crosshair interaction and onScrub.

Loading data on scroll

Paginated history plus realtime point and candle updates.