A high-performance, WebGL-powered scientific charting engine built for precision, speed, and deep interactivity. Optimized for electrochemical and scientific data visualization.
::: tip v3 bundle entries
The default import (velo-plot) is the core bundle (~51 KB gzip): line, scatter, step, band, and area charts. Candlesticks, heatmaps, analysis, and trading APIs require velo-plot/trading, velo-plot/scientific, or velo-plot/full. See Bundle Architecture.
:::
- π High Performance: Render millions of data points at 60 FPS using a specialized raw WebGL renderer.
- π Advanced Analysis: Built-in peak detection, integration, baseline correction, and customizable curve fitting (linear/poly/exp).
- π Specialized Series: Support for Lines, Scatter (SDF symbols), Step charts, Band series, Area charts, Candlesticks (OHLC), and Stacked Charts.
βοΈ Multi-Axis Engine: Independent scales and units with axis-specific scrolling and zooming.- π Professional Tooling: Real-time Statistics panel, Annotations (Lines/Shapes/Text), and high-fidelity SVG/PNG export.
- π¨ Color Schemes: 5 professional palettes with 20 colors each for multi-series charts, auto-assigned when colors aren't specified.
- β¨ Interactive Legend: Hover over series in legend to bring to front and highlight with distinct color.
- π Extensible: Plugin System with lifecycle hooks for custom drawing and data analysis.
- βοΈ Framework First: Native React support via hooks and high-level components.
- π¨ Dynamic Theming: Sleek built-in themes (Light/Midnight) with support for custom CSS-based skins.
- ποΈ Modular Core: Built on a modern, decoupled architecture for maximum extendability.
Requirements: Node.js 24+, pnpm 11+ (enforced via packageManager in package.json).
# Enable pnpm via Corepack (recommended)
corepack enable
corepack prepare pnpm@11.9.0 --activate
# Or install pnpm: https://pnpm.io/installationpnpm add velo-plotgit clone https://github.com/jigonzalez930209/velo-plot.git
cd velo-plot
pnpm install
pnpm test
pnpm build
pnpm docs:devimport { VeloPlot } from 'velo-plot/react';
function App() {
const data = {
x: new Float32Array([0, 1, 2, 3]),
y: new Float32Array([10, 20, 15, 25])
};
return (
<div style={{ width: '800px', height: '400px' }}>
<VeloPlot
series={[{ id: 's1', ...data, color: '#00f2ff' }]}
xAxis={{ label: 'Time (s)' }}
yAxis={{ label: 'Voltage (V)' }}
showControls
/>
</div>
);
}import { createChart } from 'velo-plot';
const chart = createChart({
container: document.getElementById('chart-container'),
theme: 'dark',
colorScheme: 'vibrant', // Auto-assigns colors from vibrant palette
showLegend: true
});
// Series without explicit colors get auto-assigned from the scheme
chart.addSeries({
id: 'signal1',
type: 'line',
data: { x: [...], y: [...] }
});
chart.addSeries({
id: 'signal2',
type: 'line',
data: { x: [...], y: [...] }
});
// Change color scheme at runtime
chart.setColorScheme('ocean');// Create chart with 20+ series - colors auto-cycle
const chart = createChart({
container: document.getElementById('chart'),
colorScheme: 'neon', // 'vibrant', 'pastel', 'neon', 'earth', 'ocean'
showLegend: true
});
// Add multiple series - colors assigned automatically
for (let i = 0; i < 20; i++) {
chart.addSeries({
id: `series${i}`,
name: `Dataset ${i + 1}`,
type: 'line',
data: generateData(i)
});
}
// Hover over series in legend β brings to front + highlights! β¨Visit Velo Plot Docs for:
- Bundle Architecture β start here for v3 imports
- Getting Started Guide
- Core Concepts
- API Reference
- Interactive Examples
- Development Roadmap
The library is at v3.0.0. Roadmap: docs/roadmap/. Plugin audit: docs/PLUGIN-STATUS.md. Migration: v1βv2, v2βv3. Bundles: Architecture.
| Import | Gzip (approx.) | Contents |
|---|---|---|
velo-plot |
~51 KB | Core: line, scatter, step, band, plugins API |
velo-plot/trading |
~72 KB | + candles, indicators, stacked, alerts, WebGPU |
velo-plot/scientific |
~114 KB | + heatmap, bar, polar, analysis, 3D, LaTeX |
velo-plot/full |
heavier | Everything |
velo-plot/react |
β | VeloPlot, StackedPlot, hooks |
velo-plot/vue |
β | VeloPlot, composables |
velo-plot/svelte |
β | hooks + Svelte components |
velo-plot/solid |
β | VeloPlot, hooks |
velo-plot/angular |
β | components + services |
velo-plot/astro |
β | island wrappers |
velo-plot/plugins/* |
varies | Individual plugins (tree-shakeable) |
Full guide: Bundle Architecture
MIT Β© jigonzalez930209