class_docstr: Imputed Data
  
  This class should not be instantiated directly.
  Instead, it is returned when ImputationKernel.impute_new_data() is called.
  For parameter arguments, see ImputationKernel documentation.
class_docstr_tok: ["Imputed","Data","This","class","should","not","be","instantiated","directly",".","Instead",",","it","is","returned","when","ImputationKernel.impute_new_data","(",")","is","called",".","For","parameter","arguments",",","see","ImputationKernel","documentation","."]
docstr: Plot the imputed value distributions.
  Red lines are the distribution of original data
  Black lines are the distribution of the imputed values.
  
  Parameters
  ----------
  datasets: None, int, list[int]
  variables: None, str, int, list[str], or list[int]
      The variables to plot. If None, all numeric variables
      are plotted.
  iteration: None, int
      The iteration to plot the distribution for.
      If None, the latest iteration is plotted.
      save_all_iterations must be True if specifying
      an iteration.
  adj_args
      Additional arguments passed to plt.subplots_adjust()
docstr_tok: ["Plot","the","imputed","value","distributions",".","Red","lines","are","the","distribution","of","original","data","Black","lines","are","the","distribution","of","the","imputed","values",".","Parameters","--","--","--","--","--","datasets",":","None",",","int",",","list","[","int","]","variables",":","None",",","str",",","int",",","list","[","str","]",",","or","list","[","int","]","The","variables","to","plot",".","If","None",",","all","numeric","variables","are","plotted",".","iteration",":","None",",","int","The","iteration","to","plot","the","distribution","for",".","If","None",",","the","latest","iteration","is","plotted",".","save_all_iterations","must","be","True","if","specifying","an","iteration",".","adj_args","Additional","arguments","passed","to","plt.subplots_adjust","(",")"]
code: def plot_imputed_distributions(
      self, datasets=None, variables=None, iteration=None, **adj_args
  ):
      """
      Plot the imputed value distributions.
      Red lines are the distribution of original data
      Black lines are the distribution of the imputed values.
  
      Parameters
      ----------
      datasets: None, int, list[int]
      variables: None, str, int, list[str], or list[int]
          The variables to plot. If None, all numeric variables
          are plotted.
      iteration: None, int
          The iteration to plot the distribution for.
          If None, the latest iteration is plotted.
          save_all_iterations must be True if specifying
          an iteration.
      adj_args
          Additional arguments passed to plt.subplots_adjust()
  
      """
      # Move this to .compat at some point.
      try:
          import seaborn as sns
          import matplotlib.pyplot as plt
          from matplotlib import gridspec
      except ImportError:
          raise ImportError(
              "matplotlib and seaborn must be installed to plot distributions."
          )
  
      if datasets is None:
          datasets = list(range(self.dataset_count()))
      else:
          datasets = _ensure_iterable(datasets)
      if iteration is None:
          iteration = self.iteration_count(
              datasets=datasets, variables=variables
          )
      num_vars = self._get_num_vars(variables)
      plots, plotrows, plotcols = self._prep_multi_plot(num_vars)
      gs = gridspec.GridSpec(plotrows, plotcols)
      fig, ax = plt.subplots(plotrows, plotcols, squeeze=False)
  
      for v in range(plots):
          var = num_vars[v]
          axr, axc = next(iter(gs[v].rowspan)), next(
              iter(gs[v].colspan)
          )
          iteration_level_imputations = {
              ds: self[ds, var, iteration] for ds in datasets
          }
          plt.sca(ax[axr, axc])
          non_missing_ind = self._get_nonmissing_indx(var)
          nonmissing_values = _subset_data(
              self.working_data,
              row_ind=non_missing_ind,
              col_ind=var,
              return_1d=True,
          )
          ax[axr, axc] = sns.kdeplot(
              nonmissing_values, color="red", linewidth=2
          )
          for imparray in iteration_level_imputations.values():
              ax[axr, axc] = sns.kdeplot(
                  imparray,
                  color="black",
                  linewidth=1,
                  warn_singular=False,
              )
          ax[axr, axc].set(xlabel=self._get_var_name_from_scalar(var))
  
      plt.subplots_adjust(**adj_args)
  
imports: import numpy
  from .compat import pd_DataFrame
  from .utils import _t_dat, _t_var_list, _t_var_dict, _ensure_iterable, _dict_set_diff, _assign_col_values_without_copy, _slice, _subset_data
  from itertools import combinations
  from typing import Dict, List, Union, Any, Optional
  from warnings import warn
label_desc: Use image node_id 22 for calling the ImputedData obj's underlying member method code with example usage: obj.plot_imputed_distributions(datasets, variables, iteration) without return types