/**
   * Performs optional post-processing.
   *
   * @see #scaleNumericPredictions()
   * @see #addPredictionIntervals()
   */
  protected void finishUp() {
    super.finishUp();

    if (!m_SaveForVisualization) return;

    if (m_Instances.attribute(m_ClassIndex).isNumeric()) scaleNumericPredictions();
    if (m_Classifier instanceof IntervalEstimator) addPredictionIntervals();
  }
  /**
   * Assembles and returns the plot. The relation name of the dataset gets added automatically.
   *
   * @param name the name of the plot
   * @return the plot
   * @throws Exception if plot generation fails
   */
  public PlotData2D getPlotData(String name) throws Exception {
    if (!m_FinishUpCalled) finishUp();

    return createPlotData(name);
  }
  /**
   * Returns the generated plot instances.
   *
   * @return the instances to plot
   */
  public Instances getPlotInstances() {
    if (!m_FinishUpCalled) finishUp();

    return m_PlotInstances;
  }