docs: private String data() {
      if (datasets.isEmpty()) {
        return "";
      } else {
        final StringBuilder ret = new StringBuilder();
        int biggestSize = 0;
        for (final Dataset dataset : datasets) {
          biggestSize = Math.max(biggestSize, dataset.numPoints());
        }
        for (int row = 0; row < biggestSize; ++row) {
          ret.append(valueOrBlank(datasets.get(0), row));
          // all dataset vlaues but first are prefixed with tab
          for (final Dataset dataset : Iterables.skip(datasets, 1)) {
            ret.append("\t");
            ret.append(valueOrBlank(dataset, row));
          }
          ret.append("\n");
        }
        return ret.toString();
      }
    }