Package Exports
- velo-plot
- velo-plot/angular
- velo-plot/astro
- velo-plot/astro/StackedPlot.astro
- velo-plot/astro/VeloPlot.astro
- velo-plot/full
- velo-plot/plugins/3d
- velo-plot/plugins/analysis
- velo-plot/plugins/annotations
- velo-plot/plugins/anomaly-detection
- velo-plot/plugins/broken-axis
- velo-plot/plugins/caching
- velo-plot/plugins/clipboard
- velo-plot/plugins/context-menu
- velo-plot/plugins/data-export
- velo-plot/plugins/data-transform
- velo-plot/plugins/debug
- velo-plot/plugins/forecasting
- velo-plot/plugins/gpu
- velo-plot/plugins/i18n
- velo-plot/plugins/keyboard
- velo-plot/plugins/latex
- velo-plot/plugins/lazy-load
- velo-plot/plugins/loading
- velo-plot/plugins/ml-integration
- velo-plot/plugins/offscreen
- velo-plot/plugins/pattern-recognition
- velo-plot/plugins/radar
- velo-plot/plugins/regression
- velo-plot/plugins/roi
- velo-plot/plugins/snapshot
- velo-plot/plugins/streaming
- velo-plot/plugins/sync
- velo-plot/plugins/theme-editor
- velo-plot/plugins/tools
- velo-plot/plugins/video-recorder
- velo-plot/plugins/virtualization
- velo-plot/react
- velo-plot/scientific
- velo-plot/solid
- velo-plot/svelte
- velo-plot/trading
- velo-plot/vue
Readme
Velo Plot π
A high-performance, WebGL-powered scientific charting engine built for precision, speed, and deep interactivity. Optimized for electrochemical and scientific data visualization.
β¨ Features
::: 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.
π οΈ Installation
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-plotDevelopment (this repo)
git clone https://github.com/jigonzalez930209/velo-plot.git
cd velo-plot
pnpm install
pnpm test
pnpm build
pnpm docs:devπ Quick Examples
React (Recommended)
import { 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>
);
}Vanilla JavaScript
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');Multi-Series with Color Schemes
// 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! β¨π Documentation
Visit Velo Plot Docs for:
- Bundle Architecture β start here for v3 imports
- Getting Started Guide
- Core Concepts
- API Reference
- Interactive Examples
- Development Roadmap
πΊοΈ 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.
Bundle entry points
| 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
π License
MIT Β© jigonzalez930209