code: def _seaborn_viz_distribution(
      data, x: str, contrast: Optional[str] = None, **kwargs
  ):
      """Plots the distribution.
  
      Args:
          data: The data
          x (str): The column to visualize.
          contrast (str, optional): The column to use as a contrast.
          **kwargs: Keyword arguments passed to underlying plot functions.
  
      Returns:
          matplotlib.figure.Figure
      """
      if x in data.select_dtypes("number").columns:
          return _seaborn_viz_numeric(data, x, contrast, **kwargs)
      else:
          return _seaborn_viz_categorical(data, x, contrast, **kwargs)
  
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 3 for calling a global function with example usage: _seaborn_viz_distribution(data, x, contrast) and returns: _seaborn_viz_numeric, _seaborn_viz_categorical