class_docstr: The prediction error visualizer plots the actual targets from the dataset
  against the predicted values generated by our model(s). This visualizer is
  used to detect noise or heteroscedasticity along a range of the target
  domain.
  
  Parameters
  ----------
  
  estimator : a Scikit-Learn regressor
      Should be an instance of a regressor, otherwise will raise a
      YellowbrickTypeError exception on instantiation.
      If the estimator is not fitted, it is fit when the visualizer is fitted,
      unless otherwise specified by ``is_fitted``.
  
  ax : matplotlib Axes, default: None
      The axes to plot the figure on. If None is passed in the current axes
      will be used (or generated if required).
  
  shared_limits : bool, default: True
      If shared_limits is True, the range of the X and Y axis limits will
      be identical, creating a square graphic with a true 45 degree line.
      In this form, it is easier to diagnose under- or over- prediction,
      though the figure will become more sparse. To localize points, set
      shared_limits to False, but note that this will distort the figure
      and should be accounted for during analysis.
  
  bestfit : bool, default: True
      Draw a linear best fit line to estimate the correlation between the
      predicted and measured value of the target variable. The color of
      the bestfit line is determined by the ``line_color`` argument.
  
  identity : bool, default: True
      Draw the 45 degree identity line, y=x in order to better show the
      relationship or pattern of the residuals. E.g. to estimate if the
      model is over- or under- estimating the given values. The color of the
      identity line is a muted version of the ``line_color`` argument.
  
  alpha : float, default: 0.75
      Specify a transparency where 1 is completely opaque and 0 is completely
      transparent. This property makes densely clustered points more visible.
  
  is_fitted : bool or str, default='auto'
      Specify if the wrapped estimator is already fitted. If False, the estimator
      will be fit when the visualizer is fit, otherwise, the estimator will not be
      modified. If 'auto' (default), a helper method will check if the estimator
      is fitted before fitting it again.
  
  kwargs : dict
      Keyword arguments that are passed to the base class and may influence
      the visualization as defined in other Visualizers.
  
  Attributes
  ----------
  
  score_ : float
      The R^2 score that specifies the goodness of fit of the underlying
      regression model to the test data.
  
  Examples
  --------
  
  >>> from yellowbrick.regressor import PredictionError
  >>> from sklearn.linear_model import Lasso
  >>> model = PredictionError(Lasso())
  >>> model.fit(X_train, y_train)
  >>> model.score(X_test, y_test)
  >>> model.show()
  
  Notes
  -----
  
  PredictionError is a ScoreVisualizer, meaning that it wraps a model and
  its primary entry point is the `score()` method.
docstr: Finalizes the figure by ensuring the aspect ratio is correct and adding
  the identity line for comparison. Also adds a title, axis labels, and
  the legend.
  
  Parameters
  ----------
  kwargs: generic keyword arguments.
  
  Notes
  -----
  Generally this method is called from show and not directly by the user.
docstr_tok: ["Finalizes","the","figure","by","ensuring","the","aspect","ratio","is","correct","and","adding","the","identity","line","for","comparison",".","Also","adds","a","title",",","axis","labels",",","and","the","legend",".","Parameters","--","--","--","--","--","kwargs",":","generic","keyword","arguments",".","Notes","--","--","-","Generally","this","method","is","called","from","show","and","not","directly","by","the","user","."]
code: def finalize(self, **kwargs):
      """
      Finalizes the figure by ensuring the aspect ratio is correct and adding
      the identity line for comparison. Also adds a title, axis labels, and
      the legend.
  
      Parameters
      ----------
      kwargs: generic keyword arguments.
  
      Notes
      -----
      Generally this method is called from show and not directly by the user.
      """
      # Set the title on the plot
      self.set_title("Prediction Error for {}".format(self.name))
  
      # Square the axes to ensure a 45 degree line
      if self.shared_limits:
          # Get the current limits
          ylim = self.ax.get_ylim()
          xlim = self.ax.get_xlim()
  
          # Find the range that captures all data
          bounds = (min(ylim[0], xlim[0]), max(ylim[1], xlim[1]))
  
          # Reset the limits
          self.ax.set_xlim(bounds)
          self.ax.set_ylim(bounds)
  
          # Ensure the aspect ratio is square
          self.ax.set_aspect("equal", adjustable="box")
  
      # Draw the 45 degree line
      if self.identity:
          draw_identity_line(
              ax=self.ax,
              ls="--",
              lw=2,
              c=self.colors["line"],
              alpha=0.5,
              label="identity",
          )
  
      # Set the axes labels
      self.ax.set_ylabel(r"$\hat{y}$")
      self.ax.set_xlabel(r"$y$")
  
      # Set the legend
      # Note: it would be nice to be able to use the manual_legend utility
      # here, since if the user sets a low alpha value, the R2 color in the
      # legend will also become more translucent. Unfortunately this is a
      # bit tricky because adding a manual legend here would override the
      # best fit and 45 degree line legend components. In particular, the
      # best fit is plotted in draw because it depends on y and y_pred.
      self.ax.legend(loc="best", frameon=True)
  
file_path: yellowbrick/yellowbrick/regressor/prediction_error.py
imports: from yellowbrick.style.palettes import LINE_COLOR
  from yellowbrick.exceptions import YellowbrickValueError
  from yellowbrick.bestfit import draw_best_fit, draw_identity_line
  from yellowbrick.regressor.base import RegressionScoreVisualizer
label_desc: Use image node_id 4 for calling the PredictionError obj's underlying member method code with example usage: obj.finalize() without return types