class eelbrain.plot.TopoButterfly(y, xax=None, data=None, sub=None, vmax=None, vmin=None, cmap=None, contours=None, color=None, linewidth=None, t=None, proj='default', res=None, interpolation=None, clip='even', clip_distance=0.05, head_radius=None, head_pos=0, im_interpolation=None, sensors='.', sensorlabels=None, mark=None, mcolor=None, xlabel=True, ylabel=True, xticklabels='bottom', yticklabels='left', axtitle=True, frame=True, xlim=None, **kwargs)

Butterfly plot with corresponding topomaps

  • y ((list of) NDVar) – Data to plot.

  • xax (None | categorial) – Create a separate plot for each cell in this model.

  • data (Dataset) – If a Dataset is provided, data can be specified as strings.

  • sub (str | array) – Specify a subset of the data.

  • vmax (scalar) – Upper limits for the colormap (default is determined from data).

  • vmin (scalar) – Lower limit for the colormap (default -vmax).

  • cmap (str) – Colormap (default depends on the data).

  • contours (int | sequence | dict) – Contours to draw on topomaps. Can be an int (number of contours, including vmin/vmax), a sequence (values at which to draw contours), or a **kwargs dict (must contain at least the “levels” key). Default is no contours.

  • color (matplotlib color) – Color of the butterfly plots.

  • linewidth (scalar) – Linewidth for plots (defult is to use matplotlib.rcParams).

  • t (float) – Time to display in the topomap.

  • proj (str) – The sensor projection to use for topomaps.

  • res (int) – Resolution of the topomaps (width = height = res).

  • interpolation (InterpolationArg) – Method for interpolating topo-map between sensors (default is based on mne-python).

  • clip (bool | 'even' | 'circle') – Outline for clipping topomaps: ‘even’ to clip at a constant distance (default), ‘circle’ to clip using a circle.

  • clip_distance (scalar) – How far from sensor locations to clip (1 is the axes height/width).

  • head_radius (scalar | tuple) – Radius of the head outline drawn over sensors (on sensor plots with normalized positions, 0.45 is the outline of the topomap); 0 to plot no outline; tuple for separate (right, anterior) radius. The default is determined automatically.

  • head_pos (scalar) – Head outline position along the anterior axis (0 is the center, 0.5 is the top end of the plot).

  • im_interpolation (str) – Topomap image interpolation (see Matplotlib’s imshow()). Matplotlib 1.5.3’s SVG output can’t handle uneven aspect with interpolation='none', use interpolation='nearest' instead.

  • sensors (Union[str, matplotlib.markers.MarkerStyle]) – How to mark sensor locations in the topomap (empty string '' to omit marks).

  • sensorlabels (SensorLabelsArg) – Show sensor labels. For ‘name’, any prefix common to all names is removed; with ‘fullname’, the full name is shown.

  • mark (Sensor index) – Sensors to mark in the topo-map. To highlight sensors in the butterfly plot, consider using NDVar.mask() on y.

  • mcolor (matplotlib color) – Color for marked sensors.

  • xlabel (Union[bool, str]) – X-axis label. By default the label is inferred from the data.

  • ylabel (Union[bool, str]) – Y-axis label. By default the label is inferred from the data.

  • xticklabels (Union[str, int, Sequence[int]]) – Specify which axes should be annotated with x-axis tick labels. Use int for a single axis, a sequence of int for multiple specific axes, or one of 'left' | 'bottom' | 'all' | 'none'.

  • yticklabels (Union[str, int, Sequence[int]]) – Specify which axes should be annotated with y-axis tick labels. Use int for a single axis, a sequence of int for multiple specific axes, or one of 'left' | 'bottom' | 'all' | 'none'.

  • axtitle (bool | sequence of str) – Title for the individual axes. The default is to show the names of the epochs, but only if multiple axes are plotted.

  • xlim (scalar | (scalar, scalar)) – Initial x-axis view limits as (left, right) tuple or as length scalar (default is the full x-axis in the data).

  • ... – Also accepts General layout parameters.

  • frame (bool) –


Topomap control:
  • LMB click in a butterfly plot fixates the topomap time

  • RMB click in a butterfly plot removes the time point, the topomaps follow the mouse pointer

  • .: Increment the current topomap time (got right)

  • ,: Decrement the current topomap time (go left)

  • t: open a Topomap plot for the time point under the mouse pointer

  • T: open a larger Topomap plot with visible sensor names for the time point under the mouse pointer

  • : scroll up

  • : scroll down

  • : scroll left

  • : scroll right

  • home: scroll to beginning

  • end: scroll to end

  • f: x-axis zoom in (reduce x axis range)

  • d: x-axis zoom out (increase x axis range)

  • r: y-axis zoom in (reduce y-axis range)

  • c: y-axis zoom out (increase y-axis range)


add_contour(level[, color, meas])

Add a contour line

add_hline(y[, axes])

Draw a horizontal line on one or more axes

add_hspan(bottom, top[, axes])

Draw a horizontal bar on one or more axes

add_vline(x[, axes])

Draw a vertical line on one or more axes

add_vspan(xmin, xmax[, axes])

Draw a vertical bar on one or more axes

add_vspans(intervals[, axes])

Draw vertical bars over axes


Close the figure.


(Re-)draw the figure (after making manual changes).


Draw crosshairs under the cursor


Draw the outline of the figure


Retrieve the current time


Retrieve colormap value limits as (vmin, vmax) tuple



image([name, format, close])

Create FMTXT Image from the figure


Link the time axis of this figure with another figure


Cycle through the time axis

plot_colorbar([label, label_position, ...])

Plot a colorbar corresponding to the displayed data

save(*args, **kwargs)

Short-cut for Matplotlib's savefig()

save_movie([filename, time_dilation])

Save the figure with moving time axis as movie

set_cmap(cmap[, meas])

Change the colormap in the array plots


Set the figure window title


Set the time point to display

set_vlim([v, vmax, meas])

Change the colormap limits

set_xlabel(label[, ax])

Set the label for the x-axis

set_xlim([left, right])

Set the x-axis limits for all axes


Rotate every x-axis tick-label by an angle (counterclockwise, in degrees)

set_ylabel(label[, ax])

Set the label for the y-axis

set_ylim([bottom, top])

Set the y-axis limits