1. 07 Nov, 2016 2 commits
  2. 03 Feb, 2016 1 commit
    • Jason Rhinelander's avatar
      series/quantiles: source-based quantile support · 99de1bbf
      Jason Rhinelander authored
      Old behaviour:
      creativity-series previously removed non-finite values, and sorted the
      rest, producing something like:
      (where t=0 and t=1 have no finite values, t=3 has only one non-finite,
      etc.).  This discards any association with the files they come from,
      however, which means any sort of source-based confidence exclusion is
      creativity-series-quantiles then used these pre-sorted values to produce
      another .csv of quantile values.
      createivity-series-graphs accepted either one--if the series file, it
      calculated quantiles on the fly; if the quantiles, it used the
      pre-calculated quantiles.
      New behaviour:
      creativity-series now just generates something like:
      which creativity-series-quantiles and creativity-series-graphs now
      understand: they does the nan trimming and sorting, then calculate
      creativity-series-graphs also gains an entirely new ability, with flag
      --source-confidence (but only when given a creativity-series file): to
      select a confidence region by excluding (1-x)% of source files, then
      plotting the minimum and maximum values remaining after removal of the
      most non-median values.  This is done by calculating (p-0.5)^2 for the
      inverse quantile p for each time period, then summing these up across
      time periods: the source files with the largest scores are excluded.
      (see --help for the gory details).
  3. 30 Jan, 2016 1 commit
    • Jason Rhinelander's avatar
      Axis labels; right axis ticks; more legend pos. · 9c16f9bd
      Jason Rhinelander authored
      1. Axis labels.  The y-axis label can be rotated (default) or not, and
      is on the same side of the graph as the ticks (see next item).
      2. y-axis ticks can be drawn on the right (left is still default).
      3. Legend positioning is now much more capable, and simpler.  The
      position is now a general position: either none, inside, or one of the
      four sides (for outside); two new variables control where it ends up on
      a scale relative to the graph size (either inner, for inside, or outer,
      for the outside ones).  When on a side with stuff on it (ticks, label,
      whatever), the legend goes outside the stuff except for the top, where
      it goes between the title and the graph.
      4. New method to update all the fonts at once with whatever is set in a
      new FontDescription.  Another method takes a string to change just the
      font family (but not size, slant, weight, etc.)
  4. 29 Jan, 2016 1 commit
    • Jason Rhinelander's avatar
      Graph spacing and style overhaul · 60c7a6dc
      Jason Rhinelander authored
      Instead of fixed positioning, everything on the graph is now
      auto-spacing, including title, legend, tick labels.
      Last important thing remaining: add x/y axis labels.
      Other miscellaneous changes:
      - graph drawing happens when the page is completely finished, either by
        explicitly calling finishPage, or implicitly by calling newPage() (or
        destruction).  Any lines or legends to be added to the page are
        stored until finishPage is called, which then lays everything out.
      - new RectangleStyle subclass of FillStyle that allows borders to be
        disabled on each of the 4 edges.  Everything rectangular uses this
      - The legend can be positioned in any of the 9 box positions
        (top/middle/bottom by left/center/right) and the 3 right-of-the-graph
        positions (outside top/middle/bottom), which legend_graph_space
        controlling how far the legend goes from the nearest edge.  The
        borders don't overlap anymore, but you can set
        legend_graph_space to graph_style.border.thickness to get that
        behaviour back.
      - Legend box is now a white background, black border instead of a
        transparent box; this looks a little better, especially so for any of
        the interior legend positions.
      - autospaceTitle() method is gone: the title is now always autospaced.
      - Using Cairo::SaveGuard everywhere instead of
        ctx->save()/ctx->restore() pairs.  The latter was more error prone.
        For now this is simply embedded in Series.hpp; hopefully the next
        version of Cairo will apply the upstream-submitted patch.
  5. 27 Jan, 2016 1 commit
  6. 20 Jan, 2016 1 commit
  7. 15 Jan, 2016 1 commit