code: def test_plot_sparse_source_estimates(renderer_interactive, brain_gc):
      """Test plotting of (sparse) source estimates."""
      pytest.importorskip("nibabel")
      sample_src = read_source_spaces(src_fname)
  
      # dense version
      vertices = [s["vertno"] for s in sample_src]
      n_time = 5
      n_verts = sum(len(v) for v in vertices)
      stc_data = np.zeros(n_verts * n_time)
      stc_size = stc_data.size
      stc_data[
          (np.random.rand(stc_size // 20) * stc_size).astype(int)
      ] = np.random.RandomState(0).rand(stc_data.size // 20)
      stc_data.shape = (n_verts, n_time)
      stc = SourceEstimate(stc_data, vertices, 1, 1)
  
      colormap = "mne_analyze"
      brain = plot_source_estimates(
          stc,
          "sample",
          colormap=colormap,
          background=(1, 1, 0),
          subjects_dir=subjects_dir,
          colorbar=True,
          clim="auto",
      )
      brain.close()
      del brain
      with pytest.raises(TypeError, match="figure must be"):
          plot_source_estimates(
              stc,
              "sample",
              figure="foo",
              hemi="both",
              clim="auto",
              subjects_dir=subjects_dir,
          )
  
      # now do sparse version
      vertices = sample_src[0]["vertno"]
      inds = [111, 333]
      stc_data = np.zeros((len(inds), n_time))
      stc_data[0, 1] = 1.0
      stc_data[1, 4] = 2.0
      vertices = [vertices[inds], np.empty(0, dtype=np.int64)]
      stc = SourceEstimate(stc_data, vertices, 1, 1)
      out = plot_sparse_source_estimates(
          sample_src,
          stc,
          bgcolor=(1, 1, 1),
          opacity=0.5,
          high_resolution=False,
      )
      assert isinstance(out, Figure3D)
  
imports: from pathlib import Path
  import matplotlib.pyplot
  import numpy
  import pytest
  from matplotlib.colors import Colormap
  from matplotlib.figure import Figure
  from numpy.testing import assert_allclose, assert_array_equal
  from mne import MixedSourceEstimate, SourceEstimate, convert_forward_solution, make_field_map, make_sphere_model, pick_info, pick_types, read_dipole, read_evokeds, read_forward_solution, read_trans, setup_volume_source_space, use_coil_def
  from mne._fiff._digitization import write_dig
  from mne._fiff.constants import FIFF
  from mne.bem import read_bem_solution, read_bem_surfaces
  from mne.datasets import testing
  from mne.defaults import DEFAULTS
  from mne.io import read_info, read_raw_bti, read_raw_ctf, read_raw_kit, read_raw_nirx
  from mne.minimum_norm import apply_inverse
  from mne.source_estimate import _BaseVolSourceEstimate
  from mne.source_space import read_source_spaces
  from mne.transforms import Transform
  from mne.utils import _record_warnings, catch_logging
  from mne.viz import Brain, EvokedField, Figure3D, link_brains, mne_analyze_colormap, plot_alignment, plot_brain_colorbar, plot_head_positions, plot_source_estimates, plot_sparse_source_estimates, snapshot_brain_montage
  from mne.viz._3d import _get_map_ticks, _linearize_map, _process_clim
  from mne.viz.utils import _fake_click, _fake_keypress, _fake_scroll, _get_cmap
label_desc: Use image node_id 2 for calling a global function with example usage: test_plot_sparse_source_estimates(renderer_interactive, brain_gc) without return types