class_docstr: Factor results class
  
  For result summary, scree/loading plots and factor rotations
  
  Parameters
  ----------
  factor : Factor
      Fitted Factor class
  
  Attributes
  ----------
  uniqueness : ndarray
      The uniqueness (variance of uncorrelated errors unique to
      each variable)
  communality : ndarray
      1 - uniqueness
  loadings : ndarray
      Each column is the loading vector for one factor
  loadings_no_rot : ndarray
      Unrotated loadings, not available under maximum likelihood
      analysis.
  eigenvals : ndarray
      The eigenvalues for a factor analysis obtained using
      principal components; not available under ML estimation.
  n_comp : int
      Number of components (factors)
  nbs : int
      Number of observations
  fa_method : str
      The method used to obtain the decomposition, either 'pa' for
      'principal axes' or 'ml' for maximum likelihood.
  df : int
      Degrees of freedom of the factor model.
  
  Notes
  -----
  Under ML estimation, the default rotation (used for `loadings`) is
  condition IC3 of Bai and Li (2012).  Under this rotation, the
  factor scores are iid and standardized.  If `G` is the canonical
  loadings and `U` is the vector of uniquenesses, then the
  covariance matrix implied by the factor analysis is `GG' +
  diag(U)`.
  
  Status: experimental, Some refactoring will be necessary when new
      features are added.
class_docstr_tok: ["Factor","results","class","For","result","summary",",","scree\/loading","plots","and","factor","rotations","Parameters","--","--","--","--","--","factor",":","Factor","Fitted","Factor","class","Attributes","--","--","--","--","--","uniqueness",":","ndarray","The","uniqueness","(","variance","of","uncorrelated","errors","unique","to","each","variable",")","communality",":","ndarray","1","-","uniqueness","loadings",":","ndarray","Each","column","is","the","loading","vector","for","one","factor","loadings_no_rot",":","ndarray","Unrotated","loadings",",","not","available","under","maximum","likelihood","analysis",".","eigenvals",":","ndarray","The","eigenvalues","for","a","factor","analysis","obtained","using","principal","components",";","not","available","under","ML","estimation",".","n_comp",":","int","Number","of","components","(","factors",")","nbs",":","int","Number","of","observations","fa_method",":","str","The","method","used","to","obtain","the","decomposition",",","either","'pa","'","for","'principal","axes","'","or","'ml","'","for","maximum","likelihood",".","df",":","int","Degrees","of","freedom","of","the","factor","model",".","Notes","--","--","-","Under","ML","estimation",",","the","default","rotation","(","used","for","`","loadings","`",")","is","condition","IC3","of","Bai","and","Li","(","2012",")",".","Under","this","rotation",",","the","factor","scores","are","iid","and","standardized",".","If","`","G","`","is","the","canonical","loadings","and","`","U","`","is","the","vector","of","uniquenesses",",","then","the","covariance","matrix","implied","by","the","factor","analysis","is","`","GG","'","+","diag","(","U",")","`",".","Status",":","experimental",",","Some","refactoring","will","be","necessary","when","new","features","are","added","."]
docstr: Plot factor loadings in 2-d plots
  
  Parameters
  ----------
  loading_pairs : None or a list of tuples
      Specify plots. Each tuple (i, j) represent one figure, i and j is
      the loading number for x-axis and y-axis, respectively. If `None`,
      all combinations of the loadings will be plotted.
  plot_prerotated : True or False
      If True, the loadings before rotation applied will be plotted. If
      False, rotated loadings will be plotted.
  
  Returns
  -------
  figs : a list of figure handles
docstr_tok: ["Plot","factor","loadings","in","2-d","plots","Parameters","--","--","--","--","--","loading_pairs",":","None","or","a","list","of","tuples","Specify","plots",".","Each","tuple","(","i",",","j",")","represent","one","figure",",","i","and","j","is","the","loading","number","for","x-axis","and","y-axis",",","respectively",".","If","`","None","`",",","all","combinations","of","the","loadings","will","be","plotted",".","plot_prerotated",":","True","or","False","If","True",",","the","loadings","before","rotation","applied","will","be","plotted",".","If","False",",","rotated","loadings","will","be","plotted",".","Returns","--","--","--","-","figs",":","a","list","of","figure","handles"]
code: def plot_loadings(self, loading_pairs=None, plot_prerotated=False):
      """
      Plot factor loadings in 2-d plots
  
      Parameters
      ----------
      loading_pairs : None or a list of tuples
          Specify plots. Each tuple (i, j) represent one figure, i and j is
          the loading number for x-axis and y-axis, respectively. If `None`,
          all combinations of the loadings will be plotted.
      plot_prerotated : True or False
          If True, the loadings before rotation applied will be plotted. If
          False, rotated loadings will be plotted.
  
      Returns
      -------
      figs : a list of figure handles
      """
      _import_mpl()
      from .plots import plot_loadings
  
      if self.rotation_method is None:
          plot_prerotated = True
      loadings = (
          self.loadings_no_rot if plot_prerotated else self.loadings
      )
      if plot_prerotated:
          title = "Prerotated Factor Pattern"
      else:
          title = "%s Rotated Factor Pattern" % (self.rotation_method)
      var_explained = self.eigenvals / self.n_comp * 100
  
      return plot_loadings(
          loadings,
          loading_pairs=loading_pairs,
          title=title,
          row_names=self.endog_names,
          percent_variance=var_explained,
      )
  
imports: import warnings
  import numpy
  from numpy.linalg import eigh, inv, norm, matrix_rank
  import pandas
  from scipy.optimize import minimize
  from statsmodels.tools.decorators import cache_readonly
  from statsmodels.base.model import Model
  from statsmodels.iolib import summary2
  from statsmodels.graphics.utils import _import_mpl
  from .factor_rotation import rotate_factors, promax
label_desc: Use image node_id 10 for calling the FactorResults obj's underlying member method code with example usage: obj.plot_loadings(loading_pairs, plot_prerotated) and returns: plot_loadings