code: def _plot_timeseries_unified(
      bn,
      ch_idx,
      tmin,
      tmax,
      vmin,
      vmax,
      ylim,
      data,
      color,
      times,
      vline=None,
      x_label=None,
      y_label=None,
      colorbar=False,
      hline=None,
      hvline_color="w",
  ):
      """Show multiple time series on topo using a single axes."""
      import matplotlib.pyplot as plt
  
      if not (ylim and not any(v is None for v in ylim)):
          ylim = [
              min(np.min(d) for d in data),
              max(np.max(d) for d in data),
          ]
      # Translation and scale parameters to take data->under_ax normalized coords
      _compute_ax_scalings(bn, (tmin, tmax), ylim)
      pos = bn.pos
      data_lines = bn.data_lines
      ax = bn.ax
      for data_, color_, times_ in zip(data, color, times):
          data_lines.append(
              ax.plot(
                  bn.x_t + bn.x_s * times_,
                  bn.y_t + bn.y_s * data_[ch_idx],
                  linewidth=0.5,
                  color=color_,
              )[0]
          )
          # Needs to be done afterward for some reason (probable matlotlib bug)
          data_lines[-1].set_clip_box(_pos_to_bbox(pos, ax))
      if vline:
          vline = np.array(vline) * bn.x_s + bn.x_t
          ax.vlines(
              vline,
              pos[1],
              pos[1] + pos[3],
              color=hvline_color,
              linewidth=0.5,
              linestyle="--",
          )
      if hline:
          hline = np.array(hline) * bn.y_s + bn.y_t
          ax.hlines(
              hline,
              pos[0],
              pos[0] + pos[2],
              color=hvline_color,
              linewidth=0.5,
          )
      if x_label is not None:
          ax.text(
              pos[0] + pos[2] / 2.0,
              pos[1],
              x_label,
              horizontalalignment="center",
              verticalalignment="top",
          )
      if y_label is not None:
          y_label = (
              y_label[ch_idx] if isinstance(y_label, list) else y_label
          )
          ax.text(
              pos[0],
              pos[1] + pos[3] / 2.0,
              y_label,
              horizontalignment="right",
              verticalalignment="middle",
              rotation=90,
          )
      if colorbar:
          plt.colorbar()
  
imports: from copy import deepcopy
  from functools import partial
  import numpy
  from scipy import ndimage
  from .._fiff.pick import channel_type, pick_types
  from ..defaults import _handle_default
  from ..utils import Bunch, _check_option, _clean_names, _is_numeric, _to_rgb, fill_doc
  from .utils import DraggableColorbar, _check_cov, _check_delayed_ssp, _draw_proj_checkbox, _plot_masked_image, _setup_ax_spines, _setup_vmin_vmax, add_background_image, plt_show
label_desc: Use image node_id 11 for calling a global function with example usage: _plot_timeseries_unified(bn, ch_idx, tmin, tmax, vmin, vmax, ylim, data, color, times, vline, x_label, y_label, colorbar, hline, hvline_color) without return types