-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Hannes Suhr edited this page Mar 9, 2026
·
19 revisions
Ultra-fast time series plotting for MATLAB and GNU Octave
FastPlot enables fluid interactive visualization of massive datasets (1K to 100M+ points). It dynamically downsamples data to screen resolution on every zoom/pan interaction, rendering only ~4,000 points regardless of dataset size.
| Metric | Value |
|---|---|
| 10M point zoom cycle | 4.7 ms (212 effective FPS) |
| Point reduction | 99.96% (10M to ~4K displayed) |
| GPU memory | 0.06 MB vs 153 MB for standard plot()
|
| Implementation | Pure MATLAB with optional C MEX acceleration (AVX2/NEON SIMD) |
- Per-pixel MinMax and LTTB downsampling
- Lazy multi-resolution pyramid cache
- MEX acceleration with SIMD (AVX2/NEON) -- optional, auto-fallback to pure MATLAB
- Dashboard layouts (FastPlotFigure tiles, FastPlotDock tabs)
- Interactive toolbar (data cursor, crosshair, grid/legend toggle, autoscale, export)
- 5 built-in themes (default, dark, light, industrial, scientific)
- Linked axes with synchronized zoom/pan
- Datetime X-axis with auto-formatting tick labels
- NaN gap handling and uneven sampling support
- Sensor objects with state-dependent thresholds and violation markers
- Event detection with Gantt-style viewer UI
- Live mode with file polling
setup;
fp = FastPlot('Theme', 'dark');
x = linspace(0, 100, 1e7);
y = sin(x) + 0.1*randn(size(x));
fp.addLine(x, y, 'DisplayName', 'Sensor');
fp.addThreshold(0.8, 'Direction', 'upper', 'ShowViolations', true);
fp.render();- MATLAB R2020b+ or GNU Octave 7+
- C compiler (optional) for MEX acceleration
- No toolbox dependencies
FastSense Wiki
API Reference
Guides
Use Cases
Internals
Resources