code: def _handle_spatial_colors(
      colors, info, idx, ch_type, psd, ax, sphere
  ):
      """Set up spatial colors."""
      used_nm = np.array(_clean_names(info["ch_names"]))[idx]
      # find indices for bads
      bads = [
          np.where(used_nm == bad)[0][0]
          for bad in info["bads"]
          if bad in used_nm
      ]
      pos, outlines = _get_pos_outlines(info, idx, sphere=sphere)
      loc = 1 if psd else 2  # Legend in top right for psd plot.
      _plot_legend(pos, colors, ax, bads, outlines, loc)
  
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 11 for calling a global function with example usage: _handle_spatial_colors(colors, info, idx, ch_type, psd, ax, sphere) without return types