https://github.com/unfoldtoolbox/unfoldmakie.jl
Plotting and visualization tools for EEG data, with additional Unfold.jl regression ERP methods. Based on the visualization libraries Makie.jl and AlgebraOfGraphics.jl
https://github.com/unfoldtoolbox/unfoldmakie.jl
butterfly eeg eeg-visualization electroencephalography erp event-related-potentials julia makie plots plotting topoplots visualization
Last synced: 5 months ago
JSON representation
Plotting and visualization tools for EEG data, with additional Unfold.jl regression ERP methods. Based on the visualization libraries Makie.jl and AlgebraOfGraphics.jl
- Host: GitHub
- URL: https://github.com/unfoldtoolbox/unfoldmakie.jl
- Owner: unfoldtoolbox
- License: mit
- Created: 2021-07-07T09:50:54.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-08-02T01:36:37.000Z (7 months ago)
- Last Synced: 2025-09-05T09:47:32.425Z (5 months ago)
- Topics: butterfly, eeg, eeg-visualization, electroencephalography, erp, event-related-potentials, julia, makie, plots, plotting, topoplots, visualization
- Language: Julia
- Homepage: https://unfoldtoolbox.github.io/UnfoldMakie.jl/
- Size: 4.55 GB
- Stars: 24
- Watchers: 3
- Forks: 9
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
README
# 
[](https://unfoldtoolbox.github.io/UnfoldDocs/UnfoldMakie.jl/stable/)
[](https://unfoldtoolbox.github.io/UnfoldDocs/UnfoldMakie.jl/dev)
[](https://github.com/unfoldtoolbox/UnfoldMakie.jl/actions)
[](https://codecov.io/gh/behinger/UnfoldMakie.jl)
[](https://doi.org/10.5281/zenodo.14192333)
[](https://doi.org/10.21105/joss.07560)
[](#contributors-)
[](https://juliapkgstats.com/pkg/UnfoldMakie)
[](https://juliapkgstats.com/pkg/UnfoldMakie)
|Estimation|Visualisation|Simulation|BIDS pipeline|Decoding|Statistics|MixedModelling|
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
A toolbox for visualizations of EEG/ERP data and Unfold.jl models.
Based on two libraries:
- [Makie.jl](https://makie.juliaplots.org/stable/) - very flexible visualisation library ([Maki-e](https://en.wikipedia.org/wiki/Maki-e) means "visualisation" on Japanese);
- [AlgebraOfGraphics.jl](https://github.com/MakieOrg/AlgebraOfGraphics.jl) - Makie-based grammar of graphics visualisation library, allowing flexible mapping.
Additionally we provide some specific plots for:
- [Unfold.jl](https://github.com/unfoldtoolbox/unfold.jl/) - for performing rERP analyses;
But `Unfold.jl` is not a dependency and all plotting functions are **agnostic** to any specific analysis package.
This package offers users high performance, and highly customizable plots.

We currently support 9 general ERP plots:
- 
ERP plots
- 
Butterfly plots
- 
Topography plots
- 
Topography time series
- 
ERP grid
- 
ERP images
- 
Channel images
- 
Parallel coordinates
- Circular topoplots
And 2 Unfold-specific plots:
- Design matrices
- Splines plot
### Installing Julia
Click to expand
The recommended way to install julia is [juliaup](https://github.com/JuliaLang/juliaup).
It allows you to, e.g., easily update Julia at a later point, but also to test out alpha/beta versions etc.
TLDR: If you don't want to read the explicit instructions, just copy the following command
#### Windows
AppStore -> JuliaUp, or `winget install julia -s msstore` in CMD
#### Mac & Linux
`curl -fsSL https://install.julialang.org | sh` in any shell
### Installing UnfoldMakie.jl
```julia
using Pkg
Pkg.add("UnfoldMakie")
```
## Quickstart
```julia
using UnfoldMakie
using CairoMakie # backend
using Unfold, UnfoldSim # Fit / Simulation
data, evts = UnfoldSim.predef_eeg(; noiselevel = 12, return_epoched = true)
data = reshape(data, 1, size(data)...) # simulate a single channel
times = range(0, step = 1 / 100, length = size(data, 2))
m = fit(UnfoldModel, @formula(0 ~ 1 + condition), evts, data, times)
plot_erp(coeftable(m))
```
## Contributions
Contributions are very welcome. These can be typos, bug reports, feature requests, speed improvements, new solvers, better code, better documentation.
### How to Contribute
You are very welcome to submit issues and start pull requests!
### Adding Documentation
1. We recommend to write a Literate.jl document and place it in `docs/literate/FOLDER/FILENAME.jl` with `FOLDER` being `HowTo`, `Explanation`, `Tutorial` or `Reference` ([recommended reading on the 4 categories](https://documentation.divio.com/)).
2. Literate.jl converts the `.jl` file to a `.md` automatically and places it in `docs/src/generated/FOLDER/FILENAME.md`.
3. Edit [make.jl](https://github.com/unfoldtoolbox/Unfold.jl/blob/main/docs/make.jl) with a reference to `docs/src/generated/FOLDER/FILENAME.md`.
## Citation
If you use these visualizations, please cite:
[](https://doi.org/10.21105/joss.07560) - this is our publication in *Journal of Open Source Software* on version 0.5.11. We recommend to cite this paper.
[](https://doi.org/10.5281/zenodo.14192333) - this is DOI of the last version of UM.jl. Cite this or others DOIs if you need to mention specific version of the package.
## Contributors

Benedikt Ehinger
π π» π π€ π π§ π¬ π β οΈ β

Vladimir Mikheev
π π» π π€ π§ π β οΈ β

Daniel Baumgartner
π» π

Niklas GΓ€rtner
π» π

Soren Doring
π» π

Fadil Furkan Lokman
π» π

Judith Schepers
π π€ π

RenΓ© Skukies
π
## Acknowledgements
Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) β Project-ID 251654672 β TRR 161β / βGefΓΆrdert durch die Deutsche Forschungsgemeinschaft (DFG) β Projektnummer 251654672 β TRR 161.
Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under GermanyΒ΄s Excellence Strategy β EXC 2075 β 390740016