UnfoldMakie.cart3d_to_spherical
— Methodconvert x/y/z electrode montage positions to spherical coordinate representation. output is a matrix
UnfoldMakie.config_kwargs!
— MethodTakes a kwargs named tuple of Key => NamedTuple and merges the fields with the defaults
UnfoldMakie.df_timebin
— Methoddf_timebin(df, Δbin; col_y=:erp, fun=mean, grouping=[])
Split or combine dataframe
according to equally spaced time bins
df
AbstractTable with columns:time
andcol_y
(default:erp
), and all columns ingrouping
;Δbin
bin size in:time
units;col_y
default :erp, the column to combine over (withfun
);fun
function to combine, default ismean
;grouping
(vector of symbols/strings) default empty vector, columns to group the data by before aggregating. Values ofnothing
are ignored.
UnfoldMakie.eeg_matrix_to_dataframe
— MethodHelper function converting a matrix (channel x times) to a tidy dataframe with columns :estimate, :time and :label
UnfoldMakie.eeg_topoplot_series!
— Methodeegtopoplotseries!(fig, data::DataFrame, Δbin; kwargs..) In place plotting of topoplot series see eegtopoplotseries(data, Δbin) for help
UnfoldMakie.eeg_topoplot_series
— Methodfunction eegtopoplotseries(data::DataFrame, Δbin; y=:estimate, label=:label, col=:time, row=nothing, figure = NamedTuple(), combinefun=mean, rowlabels = false, collabels = false, topoplot_attributes... )
Plot a series of topoplots. The function automatically takes the combinefun=mean
over the :time
column of data
in Δbin
steps.
- The data frame
data
needs the columns:time
andy(=:erp)
, andlabel(=:label)
. Ifdata
is a matrix, it is automatically cast to a dataframe, time bins are in samples, labels arestring.(1:size(data,1))
. - Δbin in
:time
units, specifying the time steps. All other keyword arguments are passed to the EEG_TopoPlot recipe. In most cases, the user should specify the electrode positions withpositions=pos
. - The
col
androw
arguments specify the field to be divided into columns and rows. The default iscol=:time
to split by the time field androw=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. - The
figure
option allows you to include information for plotting the figure. Alternatively, you can pass a fig objecteeg_topoplot_series!(fig, data::DataFrame, Δbin; kwargs..)
. row_labels
andcol_labels
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).
Examples
Desc
julia > df = DataFrame(:erp => repeat(1:63, 100), :time => repeat(1:20, 5 * 63), :label => repeat(1:63, 100)) # fake data
julia > pos = [(1:63) ./ 63 .* (sin.(range(-2 * pi, 2 * pi, 63))) (1:63) ./ 63 .* cos.(range(-2 * pi, 2 * pi, 63))] .* 0.5 .+ 0.5 # fake electrode positions
julia > pos = [Point2.(pos[k, 1], pos[k, 2]) for k in 1:size(pos, 1)]
julia > eeg_topoplot_series(df, 5; positions=pos)
UnfoldMakie.plot_butterfly
— MethodPlot a butterfly plot plotbutterfly(plotdata::DataFrame; positions=nothing)
kwargs (...; ...):
positions
(Array
,[]
): if specified, adds a topoplot as an inset legend to the provided channel positions. Must be the same length asplot_data
. To change the colors of the channel lines use thetopoposition_to_color
function.topolegend
(bool
, default=true
): show an inlay topoplot with corresponding electrodes. Requirespositions
to be provided.topomarkersize
(Real
, default=10
): change the size of the markers, topoplot-inlay electrodes.topowidth
(Real
, default=0.25
): change the size of the inlay topoplot width.topoheigth
(Real
, default=0.25
): change the size of the inlay topoplot height.topopositions_to_color
(function, ´x -> posToColorRomaO(x)´): change the colors of the channel lines.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "Time [s]", ylabel = "Voltage [µV]", yticklabelsize = 14) - use kwargs...
of Makie.Axis
layout = (show_legend = false, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = false, hidespines = (:r, :t), hidedecorations = Dict{Symbol, Bool}(:label => 0, :ticks => 0, :ticklabels => 0))
mapping = (x = (:time,), y = (:estimate, :yhat, :y), color = (:channel, :channels, :trial, :trials), positions = (:pos, :positions, :position, :topo_positions, :x, nothing), labels = (:labels, :label, :topoLabels, :sensor, nothing))
visual = (colormap = :roma,) - use kwargs...
of $Makie.lines$
legend = (orientation = :vertical, tellwidth = true, tellheight = false, framevisible = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false) - use kwargs...
of AlgebraOfGraphics.colobar!
see also plot_erp
UnfoldMakie.plot_channelimage
— Methodplot_channelimage!(f::Union{GridPosition, GridLayout, Figure}, data::Matrix{<:Real}, position::Vector{Point{2,Float32}}, ch_names::Vector{String}; kwargs...)
plot_channelimage(data::Matrix{<:Real}, position::Vector{Point{2,Float32}}, ch_names::Vector{String}; kwargs...)
Channel image
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure, GridLayout or GridPosition that the plot should be drawn into.data::DataFrame
: DataFrame with data.position
(Vector{Point{2,Float32}}): a vector with EEG layout coordinates.ch_names
(Vector{String}): vector with channel names.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "Time [s]", ylabel = "Channels", yticklabelsize = 14) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = false)
mapping = (x = (:time,), y = (:estimate, :yhat, :y))
visual = (colormap = Makie.Reverse{String}("RdBu"),) - use kwargs...
of $Makie.heatmap$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false, label = "Voltage [µV]", labelrotation = 4.7) - use kwargs...
of Makie.Colorbar
Return Value:
A figure displaying channel image
UnfoldMakie.plot_circulareegtopoplot
— Methodplot_circulareegtopoplot!(f, data::DataFrame; kwargs...)
plot_circulareegtopoplot(data::DataFrame; kwargs...)
Plot a circular EEG topoplot.
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure, GridLayout or GridPosition that the plot should be drawn intodata::DataFrame
: DataFrame with keys for data (looks for:y, :yhat, :estimate
), and :position (looks for:pos, :position, :positions
),predictor
(optional; default:predictor
): the circular predictor value, defines position of topoplot, is mapped aroundpredictor_bounds
predictor_bounds
(default:[0,360]
): the bounds of the predictor. This is relevant for the axis labels.positions
(default:nothing
): positions for theplot_topoplot
center_label
(default: ""): the text in the center of the criclelabels
(default:nothing
): labels for theplot_topoplot
kwargs...
: additional styling behavior, see below.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "", aspect = Makie.DataAspect(), label = "") - use kwargs...
of Makie.Axis
layout = (show_legend = false, legend_position = :right, xlabelFromMapping = nothing, ylabelFromMapping = nothing, use_colorbar = true, hidespines = (), hidedecorations = Dict{Symbol, Bool}(:label => 0))
mapping = (x = (nothing,), y = (:estimate, :yhat, :y), positions = (:pos, :positions, :position, nothing), labels = (:labels, :label, :sensor, nothing))
visual = (colormap = Makie.Reverse{Symbol}(:RdBu), contours = (color = :white, linewidth = 2), label_scatter = true, label_text = true, bounding_geometry = GeometryBasics.Circle) - use kwargs...
of $Topoplot.eeg_topoplot$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false, flipaxis = true, labelrotation = -1.5707963267948966, label = "Voltage [µV]", colormap = Makie.Reverse{Symbol}(:RdBu)) - use kwargs...
of Makie.Colorbar
Return Value:
A figure containing the circular topoplot at given layout position
UnfoldMakie.plot_designmatrix
— Methodplot_designmatrix!(f::Union{GridPosition, GridLayout, Figure}, data::Unfold.DesignMatrix; kwargs...)
plot_designmatrix(data::Unfold.DesignMatrix; kwargs...)
Plot a designmatrix.
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure or GridPosition (e.g. f[2, 3]) in which the plot will be placed into. A new axis is created.data::Unfold.DesignMatrix
: data for the plot visualization.
kwargs
standardize_data
(bool
, default:true
): indicates whether the data is standardized by pointwise division of the data with its sampled standard deviation.sort_data
(bool
, default:true
): indicates whether the data is sorted; using sortslices() of Base Julia.xticks
(Num
,default:nothing
): returns the number of labels on the x-axis. Behavior is set in the configuration:xticks
= 0: no labels are placed.xticks
= 1: first possible label is placed.xticks
= 2: first and last possible labels are placed.- 2 <
xticks
<number of labels
: equally distribute the labels. xticks
≥number of labels
: all labels are placed.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xticklabelrotation = 0.39269908169872414,) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = nothing, ylabelFromMapping = nothing, use_colorbar = true)
mapping = (x = (:time,), y = (:estimate, :yhat, :y))
visual = (colormap = :roma,) - use kwargs...
of $Makie.heatmap$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Colorbar
Return Value:
A figure displaying the designmatrix.
UnfoldMakie.plot_erp
— Methodplot_erp!(f::Union{GridPosition, GridLayout, Figure}, plot_data::DataFrame; kwargs...)
plot_erp(plot_data::DataFrame; kwargs...)
Plot an ERP plot.
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure, GridLayout or GridPosition that the plot should be drawn into.plot_data::DataFrame
: Data for the line plot visualization.kwargs...
: Additional styling behavior. Often used:plot_erp(df; mapping=(; color=:coefname, col=:conditionA))
.
kwargs (...; ...):
categorical_color
(bool
, default=true
): in case of numeric:color
column, treat:color
as continuous or categorical variable.categorical_group
(bool
, default=true
): in case of numeric:group
column, treat:group
as categorical variable by default.stderror
(bool
, default=false
): add an error ribbon, with lower and upper limits based on the:stderror
column.pvalue
(Array
, default=[]
): show a pvalue.- example:
DataFrame(from=[0.1, 0.3], to=[0.5, 0.7], coefname=["(Intercept)", "condition:face"])
- if coefname is not specified, the lines will be black.
- example:
positions
(Array
, default=[]
): see plot_butterfly.topolegend
(bool
, default=false
): (seeplot_butterfly
).
Internal-use only:
butterfly
(bool
, default=true
): a butterfly plot instead of an ERP plot. Seeplot_butterfly
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "Time [s]", ylabel = "Voltage [µV]", yticklabelsize = 14) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = false, hidespines = (:r, :t), hidedecorations = Dict{Symbol, Bool}(:grid => 1, :label => 0, :ticks => 0, :ticklabels => 0))
mapping = (x = (:time,), y = (:estimate, :yhat, :y), color = (:color, :coefname, nothing))
visual = (colormap = :roma,) - use kwargs...
of $Makie.lines$
legend = (orientation = :vertical, tellwidth = true, tellheight = false, framevisible = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false) - use kwargs...
of AlgebraOfGraphics.colobar!
Return Value:
- f - Figure() or the inputed
f
UnfoldMakie.plot_erpgrid
— Methodplot_erpgrid!(f::Union{GridPosition, GridLayout, Figure}, data::Matrix{<:Real}, pos::Vector{Point{2,Float}}; kwargs...)
plot_erpgrid(data::Matrix{<:Real}, pos::Vector{Point{2,Float}}; kwargs...)
Plot an ERP image.
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure, GridLayout or GridPosition that the plot should be drawn into.data::Matrix{<:Real}
: data for the plot visualization.pos::Vector{Point{2,Float}}
: electrode positions.
Keyword Arguments
drawlabels
(bool
, default=false
): draw channels labels over each waveform.times
: (Vector
, default=1:size(data, 2)
): vector of size()
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "Time [s]", ylabel = "Voltage [µV]", xlim = [-0.04, 1.0], ylim = [-0.04, 1.0]) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = false)
mapping = (x = (:time,), y = (:estimate, :yhat, :y))
visual = (colormap = :roma,) - use kwargs...
of $Makie.lines$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Colorbar
Return Value:
The figure displaying ERP grid
UnfoldMakie.plot_erpimage
— Methodplot_erpimage!(f::Union{GridPosition, GridLayout, Figure}, data::Matrix{Float64}; kwargs...)
plot_erpimage(data::Matrix{Float64}; kwargs...)
Plot an ERP image.
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure or GridPosition that the plot should be drawn intoplot::Matrix{Float64}
: Data for the plot visualization
Keyword Arguments
erpblur
(Number
; default:10
): number indicating how much blur is applied to the image. Gaussian blur of the ImageFiltering module is used. Non-Positive values deactivate the blur.sortindex
(Vector{Int64}
; default:nothing
): sorting over index values.sortvalues
(Vector{Int64}
; default:false
): parameter over which plot will be sorted. Using sortperm() of Base Julia.- sortperm() computes a permutation of the array's indices that puts the array into sorted order.
meanplot
(bool
; default:false
): Indicating whether the plot should add a line plot below the ERP image, showing the mean of the data.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "Time [s]", ylabel = "Sorted trials") - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = true)
mapping = (x = (:time,), y = (:estimate, :yhat, :y))
visual = (colormap = Makie.Reverse{String}("RdBu"),) - use kwargs...
of $Makie.heatmap$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false, label = "Voltage [µV]", labelrotation = 4.7) - use kwargs...
of Makie.Colorbar
Return Value:
The input f
UnfoldMakie.plot_new
— Methodplot_new() -> String
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "Time [s]", ylabel = "Voltage [µV]", yticklabelsize = 14) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = false, hidespines = (:r, :t), hidedecorations = Dict{Symbol, Bool}(:grid => 1, :label => 0, :ticks => 0, :ticklabels => 0))
mapping = (x = (:time,), y = (:estimate, :yhat, :y), color = (:color, :coefname, nothing))
visual = (colormap = :roma,) - use kwargs...
of $Makie.lines$
legend = (orientation = :vertical, tellwidth = true, tellheight = false, framevisible = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false) - use kwargs...
of AlgebraOfGraphics.colobar!
UnfoldMakie.plot_parallelcoordinates
— Methodplot_parallelcoordinates(f::Union{GridPosition, GridLayout, Figure}, data::DataFrame; kwargs)
Plot a PCP (parallel coordinates plot).
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure or GridPosition in which the plot should be drawn.data::DataFrame
: data for the plot visualization.
key word argumets (kwargs)
normalize
(default:nothing
): if:minmax
, normalize each axis to their respective min-max range.ax_labels
(Array, default:nothing
): specify axis names. Should be a vector of labels with length equal to the number of uniquemapping.x
values. Example:ax_labels
= ["Fz", "Cz", "O1", "O2"].ax_ticklabels
(default:outmost
): specify tick labels on axis.:all
- show all labels on all axes.:left
- show all labels on the left axis, but only min and max on others.:outmost
- show labels on min and max of all other axes.:none
- remove all labels.
bend
(defaultfalse
): change straight lines between the axes to curved ("bent") lines using spline interpolation. Note: While this makes the plot look cool, it is not generally recommended to bent the lines, as interpretation suffers, and the resulting visualizations can be potentially missleading.
Defining the axes
- Default:
...(...; mapping=(; x=:channel, y=:estimate))
. One could overwrite what should be on the x and the y axes. - By setting
...(...; mapping=(; color=:colorcolumn))
one defines conditions splitted by color. The default color is defined by...(...; visual=(; color=:black))
.
Change transparency
use ...(...; visual=(; alpha=0.5))
to change transparency.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (ylabel = "Time",) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = :x, ylabelFromMapping = :y, use_colorbar = false)
mapping = (x = :channel, y = (:estimate, :yhat, :y))
visual = (colormap = ColorTypes.RGBA{Float32}[RGBA{Float32}(0.0f0,0.44705883f0,0.69803923f0,1.0f0), RGBA{Float32}(0.9019608f0,0.62352943f0,0.0f0,1.0f0), RGBA{Float32}(0.0f0,0.61960787f0,0.4509804f0,1.0f0), RGBA{Float32}(0.8f0,0.4745098f0,0.654902f0,1.0f0), RGBA{Float32}(0.3372549f0,0.7058824f0,0.9137255f0,1.0f0), RGBA{Float32}(0.8352941f0,0.36862746f0,0.0f0,1.0f0), RGBA{Float32}(0.9411765f0,0.89411765f0,0.25882354f0,1.0f0)], color = :black, alpha = 0.3) - use kwargs...
of $Makie.lines$
legend = (orientation = :vertical, tellwidth = true, tellheight = false, title = "Conditions", merge = true, framevisible = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Colorbar
Return Value:
The input f
UnfoldMakie.plot_topoplot
— Methodplot_topoplot!(f::Union{GridPosition, GridLayout, Figure}, data, ; positions=nothing, labels=nothing, kwargs...)
plot_topoplot(data; positions=nothing, labels=nothing, kwargs...)
Plot a topo plot.
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure, GridLayout or GridPosition that the plot should be drawn into.data::Union{DataFrame, Vector{Float32}}
: data for the plot visualization.positions::Vector{Point{2, Float32}}=nothing
: positions used ifdata
is not a DataFrame. If this is the case andpositions=nothing
then positions are generated fromlabels
.labels::Vector{String} = nothing
: labels used ifdata
is not a DataFrame.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "", aspect = Makie.DataAspect()) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = nothing, ylabelFromMapping = nothing, use_colorbar = true, hidespines = (), hidedecorations = Dict{Symbol, Bool}(:label => 0))
mapping = (x = (nothing,), y = (:estimate, :yhat, :y), positions = (:pos, :positions, :position, nothing), labels = (:labels, :label, :sensor, nothing))
visual = (colormap = Makie.Reverse{Symbol}(:RdBu), contours = (color = :white, linewidth = 2), label_scatter = true, label_text = true, bounding_geometry = GeometryBasics.Circle) - use kwargs...
of $Topoplot.eeg_topoplot$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false, flipaxis = true, labelrotation = -1.5707963267948966, label = "Voltage [µV]") - use kwargs...
of Makie.Colorbar
Return Value:
A figure displaying the topo plot.
UnfoldMakie.plot_topoplotseries
— Methodplot_topoplotseries(f::Union{GridPosition, GridLayout, Figure}, data::DataFrame, Δbin::Real; kwargs...)
plot_topoplotseries!(data::DataFrame, Δbin::Real; kwargs...)
Multiple miniature topoplots in regular distances
Arguments:
f::Union{GridPosition, GridLayout, Figure}
: Figure, GridLayout or GridPosition that the plot should be drawn into.data::DataFrame
: DataFrame with data, needs atime
column.Δbin::Real
: A number for how large one time bin should be. Δbin is in units of thedata.time
column.combinefun
(default:mean
) - specify how the samples withinΔbin
are summarised. possible functons:mean
,median
,std
.rasterize_heatmaps
(default:true
) - enforce rasterization of the plot heatmap when saving in svg format. This has the benefit that all lines/points are vectors, except the interpolated heatmap. This is typically what you want, otherwise you get ~500x500 vectors per topoplot, which makes everything super slow.col_labels
,row_labels
- shows column and row labels.labels
(default:nothing
) - channel labels.positions
(default:nothing
) - channel positions.
Shared plot configuration options
The shared plot options can be used as follows: type = (; key=value, ...))
- for example plot_x(...; layout = (; show_legend=true, legend_position=:right))
. Multiple defaults will be cycled until match.
figure = NamedTuple() - use kwargs...
of Makie.Figure
axis = (xlabel = "", aspect = Makie.DataAspect()) - use kwargs...
of Makie.Axis
layout = (show_legend = true, legend_position = :right, xlabelFromMapping = nothing, ylabelFromMapping = nothing, use_colorbar = true, hidespines = (), hidedecorations = Dict{Symbol, Bool}(:label => 0))
mapping = (x = (nothing,), y = (:estimate, :yhat, :y), positions = (:pos, :positions, :position, nothing), labels = (:labels, :label, :sensor, nothing), col = (:time,), row = (nothing,))
visual = (colormap = Makie.Reverse{Symbol}(:RdBu), contours = (color = :white, linewidth = 2), label_scatter = true, label_text = false, bounding_geometry = GeometryBasics.Circle) - use kwargs...
of $Topoplot.eeg_topoplot$
legend = (orientation = :vertical, tellwidth = true, tellheight = false) - use kwargs...
of Makie.Legend
colorbar = (vertical = true, tellwidth = true, tellheight = false, flipaxis = true, labelrotation = -1.5707963267948966, label = "Voltage [µV]") - use kwargs...
of Makie.Colorbar
Return Value:
The input f
UnfoldMakie.rel_to_abs_bbox
— Methodrel_to_abs_bbox(org, rel)
Takes a rectangle org
and applies the relative transformation tuple rel
. Returns a Makie.BBox
.
UnfoldMakie.to_positions
— Methodtopositions(x,y,z;sphere=[0,0,0.]) topositions(pos::AbstractMatrix;sphere=[0,0,0.]) Projects 3D electrode positions to a 2D layout.
The matrix case, assumes size(pos) = (3,nChannels)
Re-implementation of the MNE algorithm.
Tipp: You can directly get positions from an MNE object after loading PyMNE and thus activating the UnfoldMakie PyMNE extension
UnfoldMakie.valType_to_symbol
— MethodVal{:bu}() to => :bu
Internally, we use a PlotConfig
struct to keep track of common plotting options, so that all functions have a similar API.
UnfoldMakie.PlotConfig
— TypePlotConfig(<plotname>)
holds various different fields, that can modify various different plotting aspects.
UnfoldMakie.PCPTicks
— TypeUsed to inject extrema ticks and round them if necessary