Data Analysis
SciChart Engine includes built-in utilities for common data analysis tasks.
Overview
The analysis utilities can be used as standalone functions or integrated into the chart via the Analysis Plugin.
Standalone Usage
import {
detectCycles,
detectPeaks,
calculateStats,
movingAverage,
downsampleLTTB,
validateData,
} from 'scichart-engine'
const stats = calculateStats(myData);Plugin Usage (Recommended)
By loading the PluginAnalysis, you gain access to all analysis tools directly through the chart instance, which handles coordinate conversion and series-aware analysis automatically.
import { PluginAnalysis } from 'scichart-engine/plugins';
await chart.use(PluginAnalysis());
// Calculate stats for a specific series data
const stats = chart.analysis.calculateStats(mySeries.getData().y);
// High-level series curve fitting
chart.analysis.addFitLine('my-series-id', 'linear');Functions
detectCycles
Detect cycles in oscillating data. Useful for periodic signals, waveforms, and cyclic measurements.
function detectCycles(
signal: Float32Array | Float64Array | number[],
tolerance?: number
): CycleInfo[]detectPeaks
Find local maxima and minima in data.
function detectPeaks(
x: Float32Array | Float64Array | number[],
y: Float32Array | Float64Array | number[],
options?: { minProminence?: number; type?: 'max' | 'min' | 'both' }
): Peak[]calculateStats
Calculate basic statistics for a dataset.
function calculateStats(
data: Float32Array | Float64Array | number[]
): DataStatsmovingAverage
Apply moving average smoothing.
function movingAverage(
data: Float32Array | Float64Array | number[],
windowSize: number
): Float32ArraydownsampleLTTB
Reduce point count using LTTB algorithm while preserving visual shape.
function downsampleLTTB(
x: Float32Array | Float64Array,
y: Float32Array | Float64Array,
targetPoints: number
): { x: Float32Array; y: Float32Array }validateData
Check for invalid values (NaN, Infinity).
function validateData(
data: Float32Array | Float64Array | number[]
): ValidationResultformatWithPrefix
Format numbers with automatic SI prefix.
function formatWithPrefix(
value: number,
unit: string,
decimals?: number
): stringgenerateCycleColors
Generate distinct colors for multiple series.
function generateCycleColors(count: number): string[]Advanced Analysis
For more complex signal processing, see the specialized modules:
Spectral & FFT
Fast Fourier Transform, Windowing functions (Hanning, Hamming, Blackman), and Power Spectrum analysis.
Digital Filters
IIR Filters (LowPass, HighPass, BandPass), Moving Averages, Median Filters, and Savitzky-Golay smoothing.
Statistics
Correlation analysis, Anomaly detection, and numerical integration (Trapezoidal/Simpson).
Curve Fitting
Linear and non-linear regression models (Polynomial, Exponential, Logarithmic).
Quick Examples
import {
detectCycles,
detectPeaks,
calculateStats,
downsampleLTTB
} from 'scichart-engine'
// Detect cycles in oscillating data
const cycles = detectCycles(signalData)
console.log(`Found ${cycles.length} cycles`)
// Find peaks
const peaks = detectPeaks(x, y, { minProminence: 0.1 })
peaks.forEach(p => console.log(`Peak at x=${p.x}, y=${p.y}`))
// Get statistics
const stats = calculateStats(y)
console.log(`Mean: ${stats.mean}, StdDev: ${stats.stdDev}`)
// Downsample for display
const { x: sampledX, y: sampledY } = downsampleLTTB(x, y, 1000)