mne.viz.plot_evoked_topomap(evoked, times='auto', ch_type=None, layout=None, vmin=None, vmax=None, cmap=None, sensors=True, colorbar=None, scalings=None, units=None, res=64, size=1, cbar_fmt='%3.1f', time_unit='s', time_format=None, proj=False, show=True, show_names=False, title=None, mask=None, mask_params=None, outlines='head', contours=6, image_interp='bilinear', average=None, head_pos=None, axes=None, extrapolate='box')[source]

Plot topographic maps of specific time points of evoked data.


The Evoked object.

timesfloat | array of float | “auto” | “peaks” | “interactive”

The time point(s) to plot. If “auto”, the number of axes determines the amount of time point(s). If axes is also None, at most 10 topographies will be shown with a regular time spacing between the first and last time instant. If “peaks”, finds time points automatically by checking for local maxima in global field power. If “interactive”, the time can be set interactively at run-time by using a slider.

ch_type‘mag’ | ‘grad’ | ‘planar1’ | ‘planar2’ | ‘eeg’ | None

The channel type to plot. For ‘grad’, the gradiometers are collected in pairs and the RMS for each pair is plotted. If None, then channels are chosen in the order given above.

layoutNone | Layout

Layout instance specifying sensor positions (does not need to be specified for Neuromag data). If possible, the correct layout file is inferred from the data; if no appropriate layout file was found, the layout is automatically generated from the sensor locations.

vminfloat | callable() | None

The value specifying the lower bound of the color range. If None, and vmax is None, -vmax is used. Else np.min(data). If callable, the output equals vmin(data). Defaults to None.

vmaxfloat | callable() | None

The value specifying the upper bound of the color range. If None, the maximum absolute value is used. If callable, the output equals vmax(data). Defaults to None.

cmapmatplotlib colormap | (colormap, bool) | ‘interactive’ | None

Colormap to use. If tuple, the first value indicates the colormap to use and the second value is a boolean defining interactivity. In interactive mode the colors are adjustable by clicking and dragging the colorbar with left and right mouse button. Left mouse button moves the scale up and down and right mouse button adjusts the range (zoom). The mouse scroll can also be used to adjust the range. Hitting space bar resets the range. Up and down arrows can be used to change the colormap. If None (default), ‘Reds’ is used for all positive data, otherwise defaults to ‘RdBu_r’. If ‘interactive’, translates to (None, True).


Interactive mode works smoothly only for a small amount of topomaps. Interactive mode is disabled by default for more than 2 topomaps.

sensorsbool | str

Add markers for sensor locations to the plot. Accepts matplotlib plot format string (e.g., ‘r+’ for red plusses). If True (default), circles will be used.

colorbarbool | None

Plot a colorbar in the rightmost column of the figure. None (default) is the same as True, but emits a warning if custom axes are provided to remind the user that the colorbar will occupy the last matplotlib.axes.Axes instance.

scalingsdict | float | None

The scalings of the channel types to be applied for plotting. If None, defaults to dict(eeg=1e6, grad=1e13, mag=1e15).

unitsdict | str | None

The unit of the channel type used for colorbar label. If scale is None the unit is automatically determined.


The resolution of the topomap image (n pixels along each side).


Side length per topomap in inches.


String format for colorbar values.


The units for the time axis, can be “ms” or “s” (default).

New in version 0.16.

time_formatstr | None

String format for topomap values. Defaults (None) to “%01d ms” if time_unit='ms', “%0.3f s” if time_unit='s', and “%g” otherwise.

projbool | ‘interactive’

If true SSP projections are applied before display. If ‘interactive’, a check box for reversible selection of SSP projection vectors will be show.


Show figure if True.

show_namesbool | callable()

If True, show channel names on top of the map. If a callable is passed, channel names will be formatted using the callable; e.g., to delete the prefix ‘MEG ‘ from all channel names, pass the function lambda x: x.replace(‘MEG ‘, ‘’). If mask is not None, only significant sensors will be shown.

titlestr | None

Title. If None (default), no title is displayed.

maskndarray of bool, shape (n_channels, n_times) | None

The channels to be marked as significant at a given time point. Indices set to True will be considered. Defaults to None.

mask_paramsdict | None

Additional plotting parameters for plotting significant sensors. Default (None) equals:

dict(marker='o', markerfacecolor='w', markeredgecolor='k',
     linewidth=0, markersize=4)
outlines‘head’ | ‘skirt’ | dict | None

The outlines to be drawn. If ‘head’, the default head scheme will be drawn. If ‘skirt’ the head scheme will be drawn, but sensors are allowed to be plotted outside of the head circle. If dict, each key refers to a tuple of x and y positions, the values in ‘mask_pos’ will serve as image mask, and the ‘autoshrink’ (bool) field will trigger automated shrinking of the positions due to points outside the outline. Alternatively, a matplotlib patch object can be passed for advanced masking options, either directly or as a function that returns patches (required for multi-axis plots). If None, nothing will be drawn. Defaults to ‘head’.

contoursint | array of float

The number of contour lines to draw. If 0, no contours will be drawn. When an integer, matplotlib ticker locator is used to find suitable values for the contour thresholds (may sometimes be inaccurate, use array for accuracy). If an array, the values represent the levels for the contours. The values are in uV for EEG, fT for magnetometers and fT/m for gradiometers. If colorbar=True, the ticks in colorbar correspond to the contour levels. Defaults to 6.


The image interpolation to be used. All matplotlib options are accepted.

averagefloat | None

The time window around a given time to be used for averaging (seconds). For example, 0.01 would translate into window that starts 5 ms before and ends 5 ms after a given time point. Defaults to None, which means no averaging.

head_posdict | None

If None (default), the sensors are positioned such that they span the head circle. If dict, can have entries ‘center’ (tuple) and ‘scale’ (tuple) for what the center and scale of the head should be relative to the electrode locations.

axesinstance of Axes | list | None

The axes to plot to. If list, the list must be a list of Axes of the same length as times (unless times is None). If instance of Axes, times must be a float or a list of one float. Defaults to None.


If ‘box’ (default) extrapolate to four points placed to form a square encompassing all data points, where each side of the square is three times the range of the data in the respective dimension. If ‘head’ extrapolate to the edges of the head circle (or to the edges of the skirt if outlines='skirt'). If ‘local’ extrapolate only to nearby points (approximately to points closer than median inter-electrode distance).

New in version 0.18.

figinstance of matplotlib.figure.Figure

The figure.