NeuroAnalyzer tutorials: Plot complex/tiled plots

Initialize NeuroAnalyzer
using NeuroAnalyzer
using Plots
eeg = load("files/eeg.hdf");

Combine plots:

p1 = NeuroAnalyzer.plot(eeg,
                        ch="Fp1",
                        seg=(5, 7))
p2 = plot_psd(eeg,
              ch="Fp1",
              seg=(5, 7))
p3 = plot_spectrogram(eeg,
                      ch="Fp1",
                      seg=(5, 7),
                      frq_lim=(0, 40))
plot_compose([p1, p2, p3],
             layout=(3, 1),
             size=(1200, 900))

It is also possible to combine different plots using complex layout:

p1 = NeuroAnalyzer.plot(eeg,
                        ch="Fp1",
                        seg=(5, 7))
p2 = plot_psd(eeg,
              ch="Fp1",
              seg=(5, 7),
              ep=1)
p3 = plot_locs(eeg,
               ch="eeg",
               selected="Fp1",
               large=false)

# @layout macro requires Plots package to be loaded
Plots.plot(p1, p2, p3,
           layout=@layout [a b; _ c _])

Tiled plots

As an example, a tiled plot of labeled auto-covariance plots will be created.

First, we need data to plot:

ac, lags = acov(eeg, ch="eeg", l=5)
l = labels(eeg)[get_channel(eeg, ch="eeg")]
19-element Vector{String}:
 "Fp1"
 "Fp2"
 "F3"
 "F4"
 "C3"
 "C4"
 "P3"
 "P4"
 "O1"
 "O2"
 "F7"
 "F8"
 "T3"
 "T4"
 "T5"
 "T6"
 "Fz"
 "Cz"
 "Pz"

Next, a vector of plots has to be created:

p = Plots.Plot{Plots.GRBackend}[]
for idx in 1:size(ac, 1)
    push!(p, plot_xac(ac[idx, :], lags, title=l[idx]))
end

There is also plot_compose() function available:

plot_compose(p[1:7],
             layout=(4, 2))