class_docstr: Creates a xp result plot out of the given dataframe: regret with respect to budget for
  each optimizer after averaging on all experiments (it is good practice to use a df
  which is filtered out for one set of input parameters)
  
  Parameters
  ----------
  optim_vals: dict
      output of the make_data static method, containing all information necessary for plotting
  title: str
      title of the plot
  name_style: dict
      a dict or dict-like object providing a line style for each optimizer name.
      (can be helpful for consistency across plots)
code: def _get_confidence_arrays(
      vals: tp.Dict[str, np.ndarray], log: bool = False
  ) -> tp.Tuple[np.ndarray, np.ndarray]:
      loss = vals["loss"]
      conf = vals["loss_std"] / np.sqrt(vals["num_eval"] - 1)
      if not log:
          return loss - conf, loss + conf
      lloss = np.log10(loss)
      lstd = 0.434 * conf / loss
      return tuple(10 ** (lloss + x) for x in [-lstd, lstd])
  
imports: import os
  import re
  import string
  import hashlib
  import warnings
  import argparse
  import itertools
  from collections import defaultdict
  from pathlib import Path
  import numpy
  import pandas
  from matplotlib import pyplot
  from matplotlib.legend import Legend
  from matplotlib import cm
  from mpl_toolkits.axes_grid1 import make_axes_locatable
  import nevergrad.common.typing
  from .None import utils
  from .exporttable import export_table
label_desc: Use image node_id 2 for calling the XpPlotter obj's underlying member method code with example usage: obj._get_confidence_arrays(vals, log) and returns: tuple, unknown,  unknown