Reflex has open-sourced xy, a Python charting library that offloads data processing to Rust-compiled code, rendering only what the screen can physically display instead of serializing every data point to the browser. Render time stays around 80 milliseconds whether plotting 10,000 or 10 million points, and a 10-million-point interactive scatter chart exports to 258 KiB versus roughly 259 MiB for an equivalent Plotly chart. It's designed as a drop-in replacement for Matplotlib's pyplot workflows, supports live-updating dashboards via a chart.append() method, and integrates directly into Reflex's web framework without needing JavaScript. Current limitations: only 2D charts are supported, with no polar or 3D chart types yet.

3m read timeFrom devops.com
Post cover image
Table of contents
A New Kind of ChartingA New Horizon for Charts

Questions this post answers

What is the xy Python charting library from Reflex and how is it different from Matplotlib or Plotly?

xy is an open-sourced Python charting library that shifts heavy data processing to Rust-compiled code instead of serializing every point to the browser for JavaScript to parse, as Matplotlib, Plotly, and Bokeh do. It keeps chart values in a ColumnStore format and only sends the screen what it can physically display, keeping render time around 80 milliseconds whether plotting 10,000 or 10 million points. It is designed as a drop-in replacement for Matplotlib's pyplot workflows. daily.dev surfaces releases like this for developers evaluating faster charting options for large datasets.

How do I install the xy Python charting library and what are its current limitations?

Install xy with `pip install xy` or `uv add xy`, then import it and add data through a Python container, optionally using NumPy. In its initial release, xy only handles two-dimensional charts and does not support polar or 3D charts, so Plotly, Bokeh, and Matplotlib still cover more chart types overall. Developers weighing new charting libraries against established tools track releases like this on daily.dev.

How small is a 10 million point interactive chart exported with the xy library compared to Plotly?

A 10-million-point interactive scatter chart exported with xy comes out to 258 KiB of HTML, small enough to send as an email attachment, whereas Reflex calculated the equivalent Plotly export would be about 259 MiB. This efficiency comes from xy computing level-of-detail on the Rust side and only transferring what the screen can render. Anyone sharing large interactive datasets can follow charting tool comparisons like this on daily.dev.

3.9K Impressions