code: def _seaborn_viz_decomposition(df, result):
      """Create timeseries decomposition visualization.
  
      Args:
          df: The dataframe
          result: The statsmodels.tsa.seasonal.DecomposeResult object.
  
      Returns:
          The visualization
      """
      fig, ax = plt.subplots(
          nrows=4,
          ncols=1,
          sharex=True,
          figsize=(
              get_option("display.matplotlib.fig_width"),
              get_option("display.matplotlib.fig_height"),
          ),
      )
      sns.lineplot(y=result.observed, x=df.index, ax=ax[0])
      sns.lineplot(y=result.trend, x=df.index, ax=ax[1])
      sns.lineplot(y=result.seasonal, x=df.index, ax=ax[2])
      sns.lineplot(y=result.resid, x=df.index, ax=ax[3])
      fig.suptitle("Time Series Decomposition", fontsize=18)
  
      plt.close()
      return fig
  
imports: import warnings
  from typing import Optional
  import matplotlib.pyplot
  import seaborn
  import pandas
  import numpy
  import plotly.graph_objs
  from plotly.subplots import make_subplots
  from plotly.offline import init_notebook_mode, iplot
  from data_describe.config._config import get_option
  from data_describe.backends import _get_viz_backend, _get_compute_backend
  from data_describe.compat import _is_dataframe, _compat, _requires, _in_notebook
label_desc: Use image node_id 14 for calling a global function with example usage: _seaborn_viz_decomposition(df, result) and returns: fig