TimeseriesTools.jl is a package for analyzing and visualizing time-series data in Julia.
- 📈 Practical utilities for working with time series
- 📊 Spectral analysis and visualization
- 🌈 Beautiful plotting using Makie
Warning
The latest releases (v0.8, v0.9) come with major breaking changes. Please be aware that TimeSeries(t, x) should now be written as Timeseries(x, t).
Most package methods have been distributed across multiple sub-packages, listed below.
- Core package functionality moved to a minimal-dependency package TimeseriesBase.jl
- Plotting utilities have been moved to TimeseriesMakie.jl, with recipes updated for the latest breaking Makie version
progressmapfunctionality has been moved to MoreMaps.jl- Documentation has been moved to TimeseriesDocs.jl
- Surrogate methods have been moved to TimeseriesToolsSurrogates.jl
- One type for everything: values, time points, units, and metadata live in a single
DimensionalData-backed array. - Type dispatch: regular, irregular, and multivariate series and spectra select the right algorithm automatically.
- Units end to end: frequencies, power, and amplitudes stay dimensionally consistent via Unitful.
- Spectra: power and energy spectra, plus wavelet spectrograms.
- Data wrangling:
interpolate,upsample,resample,downsample(anti-aliased), andimpute. - Signal processing: bandpass/highpass/lowpass filters, Hilbert transform, instantaneous phase/frequency/amplitude.
- Spike trains: point-process types, spike spectra, and the spike-time tiling coefficient.
- Light by default: heavy analysis loads on demand through package extensions.
To install TimeseriesTools.jl, simply run the following command in your Julia REPL:
] add TimeseriesToolsHere's a quick example to get you started:
using TimeseriesTools, CairoMakie, TimeseriesTools.FFTW, Unitful
# Generate some quick brown noise
t = 0.005:0.005:1e5
x = colorednoise(t*u"s")*u"V" # ::AbstractTimeseries
plot(x[1:10000])
S = powerspectrum(x, 0.001)
p = plot(S)Note that an instance of the most basic type of this package, the AbstractTimeseries, can be generated with:
t = 0:0.01:1
x = sin.(t)
Timeseries(x, t)Please see the documentation for further functionality.
TimeseriesTools.jl builds upon the excellent DimensionalData.jl package for handling dimensions and indexing in time-series data.
Happy analyzing! 🚀





