Animate a CSV File
Upload a CSV file and animate its data as bar chart races, heatmaps, scatter plots, and cascading tables. Export animations as video.
Drop CSV file here or click to browse
Supports .csv files up to 50 MB
About
Raw tabular data conveys structure but not narrative. A static CSV with 10,000 rows of quarterly revenue figures across 50 regions contains a story buried in cells. This tool parses RFC 4180-compliant CSV files and renders animated visualizations directly in the browser using the Canvas API. It supports bar chart races (ranked horizontal bars that reorder over a time dimension), heatmap reveals (cell-by-cell color interpolation mapped to value magnitude), scatter plot emergence, and cascading table animations. Numeric columns are auto-detected via regex pattern /^-?\d+\.?\d*$/ and used as the animation axis. The tool assumes the first row contains headers and the first column may serve as the label axis. Files exceeding 1 MB are parsed in a Web Worker to prevent UI thread blocking.
Limitations: this tool does not perform statistical inference. It visualizes what exists in your file. Date columns are detected heuristically and may fail on ambiguous formats like 01/02/03. For bar chart races, at least one numeric column and one label column are required. Maximum recommended file size is 50 MB. Animations render at the display refresh rate (typically 60 fps) and export via MediaRecorder as WebM where supported.
Formulas
Easing function used for smooth animation transitions (cubic ease-in-out):
where t ∈ [0, 1] is the normalized progress of the animation frame.
Color mapping for heatmaps uses HSL interpolation across the value range:
where H is the hue in degrees (240° = blue/cold, 0° = red/hot), v is the cell value, vmin and vmax are the dataset extremes.
Bar chart race interpolation between frames at time step t:
where vali is the value at keyframe i and vali+1 is the next keyframe value.
Reference Data
| Animation Type | Min. Columns | Data Requirement | Best For | Frame Complexity |
|---|---|---|---|---|
| Bar Chart Race | 2 | 1 label + 1+ numeric | Rankings over time | O(n log n) per frame (sort) |
| Heatmap Reveal | 1 | All numeric preferred | Density & magnitude patterns | O(r × c) per frame |
| Scatter Plot | 2 | 2+ numeric columns | Correlation discovery | O(n) per frame |
| Table Cascade | 1 | Any data type | Row-by-row reveal | O(k) per frame (k = visible rows) |
| Line Chart Draw | 2 | 1 label/time + 1+ numeric | Trends over sequence | O(n) per frame |
| Pie Chart Spin | 2 | 1 label + 1 numeric | Proportions (≤12 slices) | O(n) per frame |
| Bubble Growth | 3 | 2 position + 1 size | Multi-variable comparison | O(n) per frame |
| Area Stack | 2 | 1 label/time + 1+ numeric | Cumulative composition | O(n × s) |
| Radar Unfold | 3 | 3+ numeric axes | Multi-attribute profiles | O(a) per frame (a = axes) |
| Waterfall Step | 2 | 1 label + 1 numeric (deltas) | Incremental changes | O(n) per frame |
| Treemap Fill | 2 | 1 label + 1 numeric | Hierarchical proportions | O(n log n) layout |
| Gauge Sweep | 1 | 1 numeric value | Single KPI display | O(1) per frame |