code: def plot_evoked(
      evoked,
      picks=None,
      exclude="bads",
      unit=True,
      show=True,
      ylim=None,
      xlim="tight",
      proj=False,
      hline=None,
      units=None,
      scalings=None,
      titles=None,
      axes=None,
      gfp=False,
      window_title=None,
      spatial_colors=False,
      zorder="unsorted",
      selectable=True,
      noise_cov=None,
      time_unit="s",
      sphere=None,
      *,
      highlight=None,
      verbose=None,
  ):
      """Plot evoked data using butterfly plots.
  
      Left click to a line shows the channel name. Selecting an area by clicking
      and holding left mouse button plots a topographic map of the painted area.
  
      .. note:: If bad channels are not excluded they are shown in red.
  
      Parameters
      ----------
      evoked : instance of Evoked
          The evoked data.
      %(picks_all)s
      exclude : list of str | 'bads'
          Channels names to exclude from being shown. If 'bads', the
          bad channels are excluded.
      unit : bool
          Scale plot with channel (SI) unit.
      show : bool
          Show figure if True.
      ylim : dict | None
          Y limits for plots (after scaling has been applied). e.g.
          ylim = dict(eeg=[-20, 20])
          Valid keys are eeg, mag, grad, misc. If None, the ylim parameter
          for each channel equals the pyplot default.
      xlim : 'tight' | tuple | None
          X limits for plots.
      %(proj_plot)s
      hline : list of float | None
          The values at which to show an horizontal line.
      units : dict | None
          The units of the channel types used for axes labels. If None,
          defaults to ``dict(eeg='µV', grad='fT/cm', mag='fT')``.
      scalings : dict | None
          The scalings of the channel types to be applied for plotting. If None,
          defaults to ``dict(eeg=1e6, grad=1e13, mag=1e15)``.
      titles : dict | None
          The titles associated with the channels. If None, defaults to
          ``dict(eeg='EEG', grad='Gradiometers', mag='Magnetometers')``.
      axes : instance of Axes | list | None
          The axes to plot to. If list, the list must be a list of Axes of
          the same length as the number of channel types. If instance of
          Axes, there must be only one channel type plotted.
      gfp : bool | 'only'
          Plot the global field power (GFP) or the root mean square (RMS) of the
          data. For MEG data, this will plot the RMS. For EEG, it plots GFP,
          i.e. the standard deviation of the signal across channels. The GFP is
          equivalent to the RMS of an average-referenced signal.
  
          - ``True``
              Plot GFP or RMS (for EEG and MEG, respectively) and traces for all
              channels.
          - ``'only'``
              Plot GFP or RMS (for EEG and MEG, respectively), and omit the
              traces for individual channels.
  
          The color of the GFP/RMS trace will be green if
          ``spatial_colors=False``, and black otherwise.
  
          .. versionchanged:: 0.23
             Plot GFP for EEG instead of RMS. Label RMS traces correctly as such.
      window_title : str | None
          The title to put at the top of the figure.
      spatial_colors : bool | 'auto'
          If True, the lines are color coded by mapping physical sensor
          coordinates into color values. Spatially similar channels will have
          similar colors. Bad channels will be dotted. If False, the good
          channels are plotted black and bad channels red. If ``'auto'``, uses
          True if channel locations are present, and False if channel locations
          are missing or if the data contains only a single channel. Defaults to
          ``'auto'``.
      zorder : str | callable
          Which channels to put in the front or back. Only matters if
          ``spatial_colors`` is used.
          If str, must be ``std`` or ``unsorted`` (defaults to ``unsorted``). If
          ``std``, data with the lowest standard deviation (weakest effects) will
          be put in front so that they are not obscured by those with stronger
          effects. If ``unsorted``, channels are z-sorted as in the evoked
          instance.
          If callable, must take one argument: a numpy array of the same
          dimensionality as the evoked raw data; and return a list of
          unique integers corresponding to the number of channels.
  
          .. versionadded:: 0.13.0
  
      selectable : bool
          Whether to use interactive features. If True (default), it is possible
          to paint an area to draw topomaps. When False, the interactive features
          are disabled. Disabling interactive features reduces memory consumption
          and is useful when using ``axes`` parameter to draw multiaxes figures.
  
          .. versionadded:: 0.13.0
  
      noise_cov : instance of Covariance | str | None
          Noise covariance used to whiten the data while plotting.
          Whitened data channel names are shown in italic.
          Can be a string to load a covariance from disk.
          See also :meth:`mne.Evoked.plot_white` for additional inspection
          of noise covariance properties when whitening evoked data.
          For data processed with SSS, the effective dependence between
          magnetometers and gradiometers may introduce differences in scaling,
          consider using :meth:`mne.Evoked.plot_white`.
  
          .. versionadded:: 0.16.0
      %(time_unit)s
  
          .. versionadded:: 0.16
      %(sphere_topomap_auto)s
      highlight : array-like of float, shape(2,) | array-like of float, shape (n, 2) | None
          Segments of the data to highlight by means of a light-yellow
          background color. Can be used to put visual emphasis on certain
          time periods. The time periods must be specified as ``array-like``
          objects in the form of ``(t_start, t_end)`` in the unit given by the
          ``time_unit`` parameter.
          Multiple time periods can be specified by passing an ``array-like``
          object of individual time periods (e.g., for 3 time periods, the shape
          of the passed object would be ``(3, 2)``. If ``None``, no highlighting
          is applied.
  
          .. versionadded:: 1.1
      %(verbose)s
  
      Returns
      -------
      fig : instance of matplotlib.figure.Figure
          Figure containing the butterfly plots.
  
      See Also
      --------
      mne.viz.plot_evoked_white
      """  # noqa: E501
      return _plot_evoked(
          evoked=evoked,
          picks=picks,
          exclude=exclude,
          unit=unit,
          show=show,
          ylim=ylim,
          proj=proj,
          xlim=xlim,
          hline=hline,
          units=units,
          scalings=scalings,
          titles=titles,
          axes=axes,
          plot_type="butterfly",
          gfp=gfp,
          window_title=window_title,
          spatial_colors=spatial_colors,
          selectable=selectable,
          zorder=zorder,
          noise_cov=noise_cov,
          time_unit=time_unit,
          sphere=sphere,
          highlight=highlight,
      )
  
imports: from copy import deepcopy
  from functools import partial
  from itertools import cycle
  from numbers import Integral
  import numpy
  from .._fiff.pick import _DATA_CH_TYPES_SPLIT, _PICK_TYPES_DATA_DICT, _VALID_CHANNEL_TYPES, _picks_to_idx, channel_indices_by_type, channel_type, pick_info
  from ..defaults import _handle_default
  from ..fixes import _is_last_row
  from ..utils import _check_ch_locs, _check_if_nan, _clean_names, _is_numeric, _pl, _to_rgb, _validate_type, fill_doc, logger, verbose, warn
  from .topo import _plot_evoked_topo
  from .topomap import _check_sphere, _draw_outlines, _get_pos_outlines, _make_head_outlines, _prepare_topomap, _prepare_topomap_plot, _set_contour_locator, plot_topomap
  from .utils import DraggableColorbar, _check_cov, _check_delayed_ssp, _check_option, _check_time_unit, _draw_proj_checkbox, _get_cmap, _get_color_list, _make_combine_callable, _plot_masked_image, _prepare_joint_axes, _process_times, _prop_kw, _set_title_multiple_electrodes, _set_window_title, _setup_ax_spines, _setup_cmap, _setup_plot_projector, _setup_vmin_vmax, _triage_rank_sss, _trim_ticks, _validate_if_list_of_axes, plt_show
label_desc: Use image node_id 13 for calling a global function with example usage: plot_evoked(evoked, picks, exclude, unit, show, ylim, xlim, proj, hline, units, scalings, titles, axes, gfp, window_title, spatial_colors, zorder, selectable, noise_cov, time_unit, sphere) and returns: _plot_evoked