UnfoldMakie.RelativeAxisType
RelativeAxis(fig, p::NTuple{4, Float64}; kwargs...)

Returns an Axis whose position is relative to a GridLayout element (via BBox) and not relative to the Scene. Default behavior is Axis(..., bbox = BBox()).

  • p::NTuple{4,Float64}: specify the position relative to the GridPosition left:right; bottom:top, typical numbers between 0 and 1, e.g. (0.25, 0.75, 0.25, 0.75) would center an Axis inside this GridPosition.

  • kwargs... - inserted into the axis.

    f = Figure() ax = RelativeAxis(f[1, 2], (0.25, 0.75, 0.25, 0.75)# returns Axis centered within f[1, 2]

Return Value: Axis.

source
UnfoldMakie.eeg_topoplot_seriesFunction
eeg_topoplot_series(data::DataFrame,
    f,
    data::DataFrame;
    bin_width = nothing,
    bin_num = nothing,
    y = :erp,
    label = :label,
    col = :time,
    row = nothing,
    col_labels = false,
    row_labels = false,
    rasterize_heatmaps = true,
    combinefun = mean,
    xlim_topo,
    ylim_topo,
    topo_attributes...,
)
eeg_topoplot_series!(fig, data::DataFrame; kwargs..)

Plot a series of topoplots. The function takes the combinefun = mean over the :time column of data.

  • f
    Figure object.
  • data::DataFrame
    Needs the columns :time and y(=:erp), and label(=:label).
    If data is a matrix, it is automatically cast to a dataframe, time bins are in samples, labels are string.(1:size(data,1)).
  • bin_width::Real = nothing
    Number specifing the width of bin of continuous x-value in its units.
  • bin_num::Real = nothing
    Number of topoplots.
    Either bin_width, or bin_num should be specified. Error if they are both specified
    If mapping.col or mapping.row are categorical bin_width and bin_num stay as nothing.
  • col, row = :time
    Specify the field to be divided into columns and rows. The default is col = :time to split by the time field and row = nothing.
    Useful to split by a condition, e.g. ...(..., col = :time, row = :condition) would result in multiple (as many as different values in df.condition) rows of topoplot series.
  • row_labels, col_labels = false
    Indicate whether there should be labels in the plots in the first column to indicate the row value and in the last row to indicate the time (typically timerange).
  • combinefun::Function = mean
    Specify how the samples are summarised.
    Example functions: mean, median, std.
  • topo_axis::NamedTuple = (;)
    Here you can flexibly change configurations of the topoplot axis.
    To see all options just type ?Axis in REPL.
    Defaults: (aspect = 1, title = "", xgridvisible = false, xminorgridvisible = false, xminorticksvisible = false, xticksvisible = false, xticklabelsvisible = false, xlabelvisible = true, ygridvisible = false, yminorgridvisible = false, yminorticksvisible = false, yticksvisible = false, yticklabelsvisible = false, ylabelvisible = false, leftspinevisible = false, rightspinevisible = false, topspinevisible = false, bottomspinevisible = false, xpanlock = true, ypanlock = true, xzoomlock = true, yzoomlock = true, xrectzoom = false, yrectzoom = false)
  • topo_attributes::NamedTuple = (;)
    Here you can flexibly change configurations of the topoplot interoplation.
    To see all options just type ?Topoplot.topoplot in REPL.
    Defaults: (interpresolution = (128, 128), interpolation = TopoPlots.CloughTocher fillvalue: Float64 NaN tol: Float64 1.0e-6 maxiter: Int64 400 rescale: Bool false

).

Return Value: Tuple{Figure, Vector{Any}}.

source
UnfoldMakie.config_kwargs!Function
config_kwargs!(cfg::PlotConfig; kwargs...)

Takes NamedTuple of Key => NamedTuple as kwargs and merges the fields with the defaults.

source
UnfoldMakie.eeg_array_to_dataframeFunction
eeg_array_to_dataframe(data::AbstractMatrix, label_aliases::AbstractVector)
eeg_array_to_dataframe(data::AbstractVector, label_aliases::AbstractVector)
eeg_array_to_dataframe(data::Union{AbstractMatrix, AbstractVector{<:Number}})

Helper function converting an array (Matrix or Vector) to a tidy DataFrame with columns :estimate, :time and :label (with aliases :color, :group, :channel).

Format of Arrays:
- times x condition for plot_erp.
- channels x time for plot_butterfly, plot_topoplotseries.
- channels for plot_topoplot.
Return Value: DataFrame.

source
UnfoldMakie.rel_to_abs_bboxFunction
rel_to_abs_bbox(org, rel)

Takes a rectangle org consiting of coordinates of origins and applies the relative transformation tuple rel.

Return Value: Makie.BBox.

source
UnfoldMakie.to_positionsFunction
to_positions(x, y, z; sphere = [0, 0, 0.])
to_positions(pos::AbstractMatrix; sphere = [0, 0, 0.])

Projects 3D electrode positions to a 2D layout. Reimplementation of the MNE algorithm.

Assumes size(pos) = (3, nChannels) when input is AbstractMatrix.

Tip: You can get positions directly from an MNE object after loading PyMNE and enabling the UnfoldMakie PyMNE extension.

Return Value: Vector{Point2{Float64}}.

source
UnfoldMakie.data_binningFunction
data_binning(df; col_y = :erp, fun = mean, grouping = [])

Group DataFrame according to topoplot coordinates and apply aggregation function.

Arguments:

  • df::AbstractTable
    Requires columns :cont_cuts, col_y (default :erp), and all columns in grouping (col_coord, row_coord, label);
  • col_y = :erp
    The column to combine over (with fun);
  • fun = mean()
    Function to combine.
  • grouping = []
    Vector of symbols or strings, columns to group by the data before aggregation. Values of nothing are ignored.

Return Value: DataFrame.

source
UnfoldMakie.cart3d_to_sphericalFunction
cart3d_to_spherical(x, y, z)

Convert x, y, z electrode positions on a scalp to spherical coordinate representation.

Return Value: Matrix.

source