mayaCharts

Scale

Eleven charts drawn from up to a million rows, generated in this tab. The numbers under each chart are measured on your machine; resize the window to time a redraw.

Every row is one synthetic order line: a timestamp, a channel, a region, a product family, a SKU, a unit price and an order value, drawn from a fixed seed. Nothing is fetched. Charts generate and draw one after another as they scroll into view, so the page stays usable while a million rows load. Hover, the legend and zoom all work at every size.

What this takes

A chart never draws more than 10,000 marks, whatever the row count. A line on a time axis keeps about one point per 2 px. Scatter and beeswarm switch to density cells, coloured by how many rows each holds. Bar, boxplot, sunburst and sankey combine rows into categories first, so a million rows over thirty-six categories is thirty-six bars.

A bar chart over many categories keeps the largest and folds the rest into Other; set limit to choose how many stay. Aggregating on a server before the browser sees the rows is faster than any of this.

The rows themselves are the main cost. A million row objects take about 100 MB of JavaScript heap (95 MB measured here in Chromium), and this page keeps one copy that every chart reads.