code: def distribution(
      data,
      diagnostic=True,
      compute_backend=None,
      viz_backend=None,
      **kwargs,
  ) -> DistributionWidget:
      """Distribution Plots.
  
      Visualizes univariate distributions. This feature can be used for generating
      various types of plots for univariate distributions, including: histograms, violin
      plots, bar (count) plots.
  
      Args:
          data: Data Frame
          diagnostic: If True, will run diagnostics to select "interesting" plots.
          compute_backend: The compute backend.
          viz_backend: The visualization backend.
          **kwargs: Keyword arguments.
  
      Raises:
          ValueError: Invalid input data type.
  
      Returns:
          DistributionWidget
      """
      if not _is_dataframe(data):
          raise ValueError("DataFrame required.")
  
      widget = _get_compute_backend(
          compute_backend, data
      ).compute_distribution(data, diagnostic=diagnostic, **kwargs)
      return widget
  
imports: from typing import Dict, Any, Optional
  from matplotlib.figure import Figure
  from matplotlib.gridspec import GridSpec
  import seaborn
  import numpy
  from data_describe.config._config import get_option
  from data_describe.metrics.univariate import spikey, skewed
  from data_describe._widget import BaseWidget
  from data_describe.compat import _is_dataframe
  from data_describe.backends import _get_viz_backend, _get_compute_backend
label_desc: Use image node_id 1 for calling a global function with example usage: distribution(data, diagnostic, compute_backend, viz_backend) and returns: widget