class_docstr: Object that can be rendered by HiPlot. It essential contains a list of metrics, but also some options on how to render it.
  
  See :meth:`Experiment.display` to display an :class:`Experiment` in an ipython notebook.
  
  :ivar datapoints: All the measurements we have. One datapoint corresponds to one line in the parallel plot and to one line in the table.
  :ivar parameters_definition: Characteristics of the columns (ordering, type, etc...)
  :ivar colormap: Colormap to use
  :ivar colorby: Default column to color by
  :ivar weightcolumn: If rows have different weights, use this column as the weight (default to 1 if not specified)
  :ivar enabledDisplays: Ordered displays to enable (by default all are enabled)
  
  :Example:
  
  .. code-block:: python
  
      import hiplot as hip
      data = [{'param': 1, 'loss': 10, 'hidden_field': 'value1', 'c': 'red'},
          {'param': 2, 'loss': 5, 'hidden_field': 'value2', 'c': 'black'}]
      exp = hip.Experiment.from_iterable(data)
docstr: Merge several experiments into a single one
docstr_tok: ["Merge","several","experiments","into","a","single","one"]
code: def merge(xp_dict: tp.Dict[str, "Experiment"]) -> "Experiment":
      """
      Merge several experiments into a single one
      """
      xp = Experiment(datapoints=[])
      assert xp.parameters_definition is not None  # for mypy
      for k, subxp in xp_dict.items():
          assert subxp is not None, k
          xp.datapoints += [
              Datapoint(
                  uid=f"{k}_{d.uid}",
                  from_uid=f"{k}_{d.from_uid}"
                  if d.from_uid is not None
                  else None,
                  values={**d.values, "exp": k},
              )
              for d in subxp.datapoints
          ]
          if subxp.parameters_definition is not None:
              xp.parameters_definition.update(
                  subxp.parameters_definition
              )
          for d, v in subxp._display_data.items():
              xp.display_data(d).update(v)
      return xp
  
imports: import csv
  import uuid
  import json
  import codecs
  import warnings
  from abc import ABCMeta, abstractmethod
  from enum import Enum
  from collections import defaultdict
  from pathlib import Path
  import typing
label_desc: Use image node_id 19 for calling the Experiment obj's underlying member method code with example usage: obj.merge(xp_dict) and returns: xp