public String toCSV() {
    if (dataset == null) {
      return "";
    }
    String out =
        "Experiment name: "
            + this.context.getExpContext().getExperimentName()
            + "\nRaw data dir: "
            + this.context.getExpContext().getRawDir()
            + "\n"
            + region
            + "\n";
    int nr = dataset.getSeriesCount();
    for (int s = 0; s < nr; s++) {
      out += dataset.getSeriesKey(s);

      if (s + 1 < nr) {
        out += ", ";
      } else {
        out += "\n";
      }
    }
    if (nr > 0) {
      for (int f = 0; f < dataset.getItemCount(0); f++) {
        double x = dataset.getXValue(0, f);
        out += x + ",";
        for (int s = 0; s < nr; s++) {
          if (s < dataset.getSeriesCount() && f < dataset.getItemCount(s)) {
            out += dataset.getY(s, f);
            if (s + 1 < nr) {
              out += ", ";
            } else {
              out += "\n";
            }
          } else out += "\n";
        }
      }
    }
    return out;
  }