code: def distribution(
      *args: any,
      names: Optional[List[str]] = None,
      levels: int = 5,
      alpha: int = 0.6,
      color_scheme: str = "tableau10",
      height: int = 400,
      width: int = 800,
      height_minimap: int = 100,
  ):
      r"""
      Creates a distribution plot distribution with Altair
  
      This has multiple overloads
  
      .. function:: distribution(indicators: IndicatorCollection, *, names: Optional[List[str]] = None, levels: int = 5, alpha: int = 0.6, height: int = 400, width: int = 800, height_minimap: int = 100)
          :noindex:
  
      .. function:: distribution(series: Union[np.ndarray, torch.Tensor], *, names: Optional[List[str]] = None, levels: int = 5, alpha: int = 0.6, height: int = 400, width: int = 800, height_minimap: int = 100)
          :noindex:
  
      .. function:: distribution(series: List[Union[np.ndarray, torch.Tensor]], *, names: Optional[List[str]] = None, levels: int = 5, alpha: int = 0.6, height: int = 400, width: int = 800, height_minimap: int = 100)
          :noindex:
  
      .. function:: distribution(series: List[Union[np.ndarray, torch.Tensor]], step: np.ndarray, *, names: Optional[List[str]] = None, levels: int = 5, alpha: int = 0.6, height: int = 400, width: int = 800, height_minimap: int = 100)
          :noindex:
  
      Arguments:
          indicators(IndicatorCollection): Set of indicators to be plotted
          series(List[np.ndarray]): List of series of data
          step(np.ndarray): Steps
  
      Keyword Arguments:
          names(List[str]): List of names of series
          levels: how many levels of the distribution to be plotted
          alpha: opacity of the distribution
          color_scheme: color scheme
          height: height of the visualization
          width: width of the visualization
          height_minimap: height of the view finder
  
      Return:
          The Altair visualization
  
      Example:
          >>> from labml import analytics
          >>> indicators = analytics.runs('1d3f855874d811eabb9359457a24edc8')
          >>> analytics.distribution(indicators)
      """
  
      series = None
      step = None
  
      if len(args) == 1:
          if isinstance(args[0], _IndicatorCollection):
              series, names_ = _cache.get_indicators_data(args[0])
              if not series:
                  raise ValueError("No series found")
              if names is None:
                  names = names_
          elif isinstance(args[0], list):
              series = args[0]
          else:
              series = [args[0]]
      elif len(args) == 2:
          series = args[0]
          step = args[1]
  
      if names is None:
          digits = len(str(len(series)))
          names = [str(i + 1).zfill(digits) for i in range(len(series))]
  
      if series is None:
          raise ValueError(
              "distribution should be called with an indicator collection"
              " or a series. Check documentation for details."
          )
  
      names = _remove_names_prefix(names)
      tables = _density.data_to_table(series, names, step)
  
      return _density.render(
          tables,
          levels=levels,
          alpha=alpha,
          color_scheme=color_scheme,
          width=width,
          height=height,
          height_minimap=height_minimap,
      )
  
imports: from typing import Tuple, Optional, List, overload, Union, TYPE_CHECKING
  import numpy
  from labml.internal.analytics import cache
  from labml.internal.analytics.altair import density
  from labml.internal.analytics.altair import histogram
  from labml.internal.analytics.altair import scatter
  from labml.internal.analytics.altair import binned_heatmap
  from labml.internal.analytics.indicators import IndicatorCollection
  from labml.internal.analytics.models import ModelProbe
  from labml.internal.analytics.models import ValueCollection
  from labml.internal.analytics.models import DeepValueCollection
  from labml.internal.analytics.viz import text_attention
  from labml.internal.analytics.viz import init_inline_viz
label_desc: Use image node_id 11 for calling a global function with example usage: distribution() and returns: _density