class_docstr: Create topic model widget.
docstr: Creates an elbow plot displaying coherence values vs number of topics.
  
  Args:
      viz_backend: The visualization backend.
  
  Raises:
      ValueError: No coherence values to plot.
  
  Returns:
      fig: Elbow plot showing coherence values vs number of topics
code: def elbow_plot(self, viz_backend: str = None):
      """Creates an elbow plot displaying coherence values vs number of topics.
  
      Args:
          viz_backend: The visualization backend.
  
      Raises:
          ValueError: No coherence values to plot.
  
      Returns:
          fig: Elbow plot showing coherence values vs number of topics
      """
      try:
          self._coherence_values
      except AttributeError:
          raise ValueError(
              "Coherence values not defined. At least 2 LDA or LSI models need to be"
              " trained with different numbers of topics."
          )
      else:
          return _get_viz_backend(viz_backend).viz_elbow_plot(
              self._min_topics, self._max_topics, self._coherence_values
          )
  
imports: import warnings
  from typing import List, Optional, Dict, Tuple, TYPE_CHECKING
  import pandas
  import numpy
  from sklearn.decomposition import TruncatedSVD, NMF
  import matplotlib.pyplot
  import seaborn
  from data_describe.config._config import get_option
  from data_describe.text.text_preprocessing import create_doc_term_matrix, create_tfidf_matrix, filter_dictionary
  from data_describe.backends import _get_viz_backend
  from data_describe.compat import _compat, _requires, _in_notebook
  from data_describe._widget import BaseWidget
label_desc: Use image node_id 18 for calling the TopicModelWidget obj's underlying member method code with example usage: obj.elbow_plot(viz_backend) and returns: _get_viz_backend