Skip to content

jigonzalez930209/velo-plot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

845 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Velo Plot πŸš€

A high-performance, WebGL-powered scientific charting engine built for precision, speed, and deep interactivity. Optimized for electrochemical and scientific data visualization.

License: MIT NPM Version

✨ 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/installation
pnpm add velo-plot

Development (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:

πŸ—ΊοΈ 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

About

A high-performance scientific charting engine for web applications.

Resources

License

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages