code: def _plot_legend(pos, colors, axis, bads, outlines, loc, size=30):
      """Plot (possibly colorized) channel legends for evoked plots."""
      from mpl_toolkits.axes_grid1.inset_locator import inset_axes
  
      axis.get_figure().canvas.draw()
      bbox = axis.get_window_extent()  # Determine the correct size.
      ratio = bbox.width / bbox.height
      ax = inset_axes(
          axis,
          width=str(size / ratio) + "%",
          height=str(size) + "%",
          loc=loc,
      )
      ax.set_adjustable("box")
      ax.set_aspect("equal")
      _prepare_topomap(pos, ax, check_nonzero=False)
      pos_x, pos_y = pos.T
      ax.scatter(
          pos_x, pos_y, color=colors, s=size * 0.8, marker=".", zorder=1
      )
      if bads:
          bads = np.array(bads)
          ax.scatter(
              pos_x[bads],
              pos_y[bads],
              s=size / 6,
              marker=".",
              color="w",
              zorder=1,
          )
      _draw_outlines(ax, outlines)
  
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 6 for calling a global function with example usage: _plot_legend(pos, colors, axis, bads, outlines, loc, size) without return types