code: def plot_hist(
      data: Union[TimeSeries, List[float], np.ndarray],
      bins: Optional[Union[int, np.ndarray, List[float]]] = None,
      density: bool = False,
      title: Optional[str] = None,
      fig_size: Optional[Tuple[int, int]] = None,
      ax: Optional[plt.axis] = None,
  ) -> None:
      """This function plots the histogram of values in a TimeSeries instance or an array-like.
  
      All types of TimeSeries are supported (uni-, multivariate, deterministic, stochastic).
      Depending on the number of components in `data`, up to four histograms can be plotted on one figure.
      All stochastic samples will be displayed with the corresponding component.
  
      If `data` is an array-like, ALL values will be displayed in the same histogram.
  
      Parameters
      ----------
      data
          TimeSeries instance or an array-like from which to plot the histogram.
      bins
          Optionally, either an integer value for the number of bins to be displayed
          or an array-like of floats determining the position of bins.
      density
          bool, if `density` is set to True, the bin counts will be converted to probability density
      title
          The title of the figure to be displayed
      fig_size
          The size of the figure to be displayed.
      ax
          Optionally, an axis object to plot the histogram on.
      """
  
      n_plots_max = 4
  
      if isinstance(data, TimeSeries):
          if len(data.components) > n_plots_max:
              logger.warning(
                  "TimeSeries contains more than 4 components. Only the first 4 components will be displayed."
              )
  
          components = list(data.components[:n_plots_max])
          values = (
              data[components].all_values(copy=False).flatten(order="F")
          )
      else:
          values = (
              data if isinstance(data, np.ndarray) else np.array(data)
          )
          if len(values.shape) > 1:
              logger.warning(
                  "Input array-like data with `dim>1d` will be flattened and displayed in one histogram."
              )
  
          components = ["Data"]
          values = values.flatten(order="F")
  
      # compute the number of columns and rows for subplots depending on shape of input data
      n_components = len(components)
      n_cols = 1 if n_components == 1 else 2
      n_rows = math.ceil(n_components / n_cols)
  
      title = "Histogram" if title is None else title
      if ax is None:
          fig = plt.figure(constrained_layout=True, figsize=fig_size)
          gs = fig.add_gridspec(n_rows, n_cols)
          fig.suptitle(title)
          ax_all = [fig.add_subplot(gs[i]) for i in range(n_components)]
      else:
          if n_components > 1:
              logger.warning(
                  "Only the first component is plotted when calling plot_hist() with a given `ax`"
              )
          ax.set_title(title)
          ax_all = [ax]
  
      n_entries = len(values) // n_components
      for i, label, ax_i in zip(
          range(n_components), components, ax_all
      ):
          ax_i.hist(
              values[i * n_entries : (i + 1) * n_entries],
              bins=bins,
              density=density,
              label=label,
          )
          ax_i.set_xlabel("value")
          ax_i.set_ylabel(
              "count" if not density else "probability density"
          )
          ax_i.legend()
  
imports: import math
  from typing import List, Optional, Sequence, Tuple, Union
  import matplotlib.pyplot
  import numpy
  from scipy.signal import argrelmax
  from scipy.stats import norm
  from statsmodels.tsa.seasonal import MSTL, STL, seasonal_decompose
  from statsmodels.tsa.stattools import acf, adfuller, grangercausalitytests, kpss, pacf
  from darts import TimeSeries
  from darts.logging import get_logger, raise_if, raise_if_not, raise_log
  from .missing_values import fill_missing_values
  from .utils import ModelMode, SeasonalityMode
label_desc: Use image node_id 13 for calling a global function with example usage: plot_hist(data, bins, density, title, fig_size, ax) without return types