code: def plot_ica_sources(
      ica,
      inst,
      picks=None,
      start=None,
      stop=None,
      title=None,
      show=True,
      block=False,
      show_first_samp=False,
      show_scrollbars=True,
      time_format="float",
      precompute=None,
      use_opengl=None,
      *,
      theme=None,
      overview_mode=None,
      splash=True,
  ):
      """Plot estimated latent sources given the unmixing matrix.
  
      Typical usecases:
  
      1. plot evolution of latent sources over time based on (Raw input)
      2. plot latent source around event related time windows (Epochs input)
      3. plot time-locking in ICA space (Evoked input)
  
      Parameters
      ----------
      ica : instance of mne.preprocessing.ICA
          The ICA solution.
      inst : instance of Raw, Epochs or Evoked
          The object to plot the sources from.
      %(picks_ica)s
      start, stop : float | int | None
         If ``inst`` is a `~mne.io.Raw` or an `~mne.Evoked` object, the first and
         last time point (in seconds) of the data to plot. If ``inst`` is a
         `~mne.io.Raw` object, ``start=None`` and ``stop=None`` will be
         translated into ``start=0.`` and ``stop=3.``, respectively. For
         `~mne.Evoked`, ``None`` refers to the beginning and end of the evoked
         signal. If ``inst`` is an `~mne.Epochs` object, specifies the index of
         the first and last epoch to show.
      title : str | None
          The window title. If None a default is provided.
      show : bool
          Show figure if True.
      block : bool
          Whether to halt program execution until the figure is closed.
          Useful for interactive selection of components in raw and epoch
          plotter. For evoked, this parameter has no effect. Defaults to False.
      show_first_samp : bool
          If True, show time axis relative to the ``raw.first_samp``.
      %(show_scrollbars)s
      %(time_format)s
      %(precompute)s
      %(use_opengl)s
      %(theme_pg)s
  
          .. versionadded:: 1.0
      %(overview_mode)s
  
          .. versionadded:: 1.1
      %(splash)s
  
          .. versionadded:: 1.6
  
      Returns
      -------
      %(browser)s
  
      Notes
      -----
      For raw and epoch instances, it is possible to select components for
      exclusion by clicking on the line. The selected components are added to
      ``ica.exclude`` on close.
  
      %(notes_2d_backend)s
  
      .. versionadded:: 0.10.0
      """
      from ..epochs import BaseEpochs
      from ..evoked import Evoked
      from ..io import BaseRaw
  
      exclude = ica.exclude
      picks = _picks_to_idx(
          ica.n_components_, picks, picks_on="components"
      )
  
      if isinstance(inst, (BaseRaw, BaseEpochs)):
          fig = _plot_sources(
              ica,
              inst,
              picks,
              exclude,
              start=start,
              stop=stop,
              show=show,
              title=title,
              block=block,
              show_first_samp=show_first_samp,
              show_scrollbars=show_scrollbars,
              time_format=time_format,
              precompute=precompute,
              use_opengl=use_opengl,
              theme=theme,
              overview_mode=overview_mode,
              splash=splash,
          )
      elif isinstance(inst, Evoked):
          if start is not None or stop is not None:
              inst = inst.copy().crop(start, stop)
          sources = ica.get_sources(inst)
          fig = _plot_ica_sources_evoked(
              evoked=sources,
              picks=picks,
              exclude=exclude,
              title=title,
              labels=getattr(ica, "labels_", None),
              show=show,
              ica=ica,
          )
      else:
          raise ValueError("Data input must be of Raw or Epochs type")
  
      return fig
  
imports: import warnings
  from functools import partial
  import numpy
  from scipy.stats import gaussian_kde
  from .._fiff.meas_info import create_info
  from .._fiff.pick import _picks_to_idx, pick_types
  from .._fiff.proj import _has_eeg_average_ref_proj
  from ..defaults import DEFAULTS, _handle_default
  from ..utils import _reject_data_segments, _validate_type, fill_doc, verbose
  from .epochs import plot_epochs_image
  from .evoked import _butterfly_on_button_press, _butterfly_onpick
  from .topomap import _plot_ica_topomap
  from .utils import _compute_scalings, _convert_psds, _get_cmap, _get_plot_ch_type, _handle_precompute, _make_event_color_dict, plt_show
label_desc: Use image node_id 1 for calling a global function with example usage: plot_ica_sources(ica, inst, picks, start, stop, title, show, block, show_first_samp, show_scrollbars, time_format, precompute, use_opengl) and returns: fig