Commit 18842956 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

implement domain_untranslate_categorical

parent f6d89c26
Loading
Loading
Loading
Loading
+23 −1
Original line number Diff line number Diff line
@@ -166,13 +166,35 @@ Series domain_untranslate_linear(const DomainConfig& domain, std::vector<double>
  return s;
}

Series domain_untranslate_categorical(
    const DomainConfig& domain,
    std::vector<double> values) {
  Series s;
  for (auto vt : values) {
    if (domain.inverted) {
      vt = 1.0 - vt;
    }

    std::string v;
    size_t vidx = vt * domain.categories.size();
    if (vidx >= 0 && vidx < domain.categories.size()) {
      v = domain.categories[vidx];
    }

    s.emplace_back(std::move(v));
  }

  return s;
}

Series domain_untranslate(
    const DomainConfig& domain,
    const std::vector<double>& values) {
  switch (domain.kind) {
    case DomainKind::LINEAR:
    case DomainKind::CATEGORICAL:
      return domain_untranslate_linear(domain, values);
    case DomainKind::CATEGORICAL:
      return domain_untranslate_categorical(domain, values);
    default:
      assert(false);
  }
+3 −2
Original line number Diff line number Diff line
@@ -14,15 +14,16 @@ plot {
  ymin: -3;
  ymax: 30;
  xdomain: categorical;
  xdomain-format: string;

  series {
    xs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
    xs: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec;
    ys: -0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5;
    point-size: 3.3pt;
  }

  series {
    xs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
    xs: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec;
    ys: 4.8, 6.6, 10.3, 14.2, 16.6, 17.0, 15.2, 11.9, 8.5, 5.7, 4.2, 3.9;
    point-size: 3.3pt;
  }