class_docstr: Feature distance visualization.
  
  This component renders graphical representations of distances between features to highlight features that can be
  either simplified or completely removed.
  
  Parameters
  ----------
  headers: bool, default = False
      if `True` then render headers
  namespace: Optional[str], default = None
      namespace to use; can be nested like `ns_a.ns_b.ns_c`
  fig_args: Optional[Dict[str, Any]] = None,
      kwargs to pass into chart figure
  kwargs
class_docstr_tok: ["Feature","distance","visualization",".","This","component","renders","graphical","representations","of","distances","between","features","to","highlight","features","that","can","be","either","simplified","or","completely","removed",".","Parameters","--","--","--","--","--","headers",":","bool",",","default","=","False","if","`","True","`","then","render","headers","namespace",":","Optional","[","str","]",",","default","=","None","namespace","to","use",";","can","be","nested","like","`","ns_a.ns_b.ns_c","`","fig_args",":","Optional","[","Dict","[","str",",","Any","]","]","=","None",",","kwargs","to","pass","into","chart","figure","kwargs"]
code: def _render(self, state: AnalysisState) -> None:
      fig_args = self.fig_args.copy()
      if "figsize" not in fig_args:
          fig_args["figsize"] = (
              12,
              len(state.feature_distance.columns) / 4,
          )
  
      fig, ax = plt.subplots(**fig_args)
      default_args = dict(orientation="left")
      ax.grid(False)
      hc.dendrogram(
          ax=ax,
          Z=state.feature_distance.linkage,
          labels=state.feature_distance.columns,
          leaf_font_size=10,
          **{**default_args, **self._kwargs},
      )
      plt.show(fig)
      if len(state.feature_distance.near_duplicates) > 0:
          message = (
              f"**The following feature groups are considered as near-duplicates**:\n\n"
              f"Distance threshold: <= `{state.feature_distance.near_duplicates_threshold}`. "
              f"Consider keeping only some of the columns within each group:\n"
          )
          for group in state.feature_distance.near_duplicates:
              message += f'\n - `{"`, `".join(sorted(group["nodes"]))}` - distance `{group["distance"]:.2f}`'
          self.render_markdown(message)
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Tuple, Type, Union
  import matplotlib.pyplot
  import numpy
  import pandas
  import seaborn
  from scipy import stats
  from scipy.cluster import hierarchy
  from sklearn.inspection import PartialDependenceDisplay
  from autogluon.common.features.types import R_BOOL, R_CATEGORY, R_DATETIME, R_FLOAT, R_INT, R_OBJECT
  from ..state import AnalysisState
  from .base import AbstractVisualization
  from .jupyter import JupyterMixin
label_desc: Use image node_id 3 for calling the FeatureDistanceAnalysisVisualization obj's underlying member method code with example usage: obj._render(state) without return types