Class HistogramCalculator

java.lang.Object
com.illumon.iris.db.plot.datasets.histogram.HistogramCalculator

public class HistogramCalculator
extends Object
Utility for calculating histogram plot information: bin locations and data frequencies within these bins.
  • Constructor Details

  • Method Details

    • calc

      public static Table calc​(Table table, String column, int nbins, PlotInfo plotInfo, String... byColumns)
      Finds the minimum and maximum of the data in the column of the table and splits this range into nbins equally sized bins. Calculates the number of data values in each bin.

      Data which is not normal as defined in DoubleFpPrimitives.isNormal(double) is filtered out of the data set.

      Parameters:
      table - table
      column - column in table
      nbins - number of bins
      plotInfo - plot information
      byColumns - other columns needed to calculate histogram, these columns will be included while grouping
      Returns:
      table holding the calculated bins and their counts
      Throws:
      com.fishlib.base.verify.RequirementFailure - table and column must not be null
      RuntimeException - column must be numeric
      com.fishlib.base.verify.RequirementFailure - table and column must not be null
      RuntimeException - column must be numeric
    • calc

      public static Table calc​(Table table, String column, int nbins, PlotInfo plotInfo, List<String> byColumns)
      Finds the minimum and maximum of the data in the column of the table and splits this range into nbins equally sized bins. Calculates the number of data values in each bin.

      Data which is not normal as defined in DoubleFpPrimitives.isNormal(double) is filtered out of the data set.

      Parameters:
      table - table
      column - column in table
      nbins - number of bins
      plotInfo - plot information
      byColumns - other columns needed to calculate histogram, these columns will be included while grouping
      Returns:
      table holding the calculated bins and their counts
      Throws:
      com.fishlib.base.verify.RequirementFailure - table and column must not be null
      RuntimeException - column must be numeric
    • calc

      public static Table calc​(Table table, String histogramColumn, double rangeMin, double rangeMax, int nbins, PlotInfo plotInfo, String... byColumns)
      Splits the specified range into nbins equally sized bins. Calculates the number of data values in each bin.

      Data which is not normal as defined in DoubleFpPrimitives.isNormal(double) is filtered out of the data set.

      Parameters:
      table - table
      histogramColumn - histogramColumn in table
      rangeMin - range minimum
      rangeMax - range maximum
      nbins - number of bins
      plotInfo - plot information
      byColumns - other columns needed to calculate histogram, these columns will be included while grouping
      Returns:
      table holding the calculated bins and their counts
      Throws:
      com.fishlib.base.verify.RequirementFailure - table and histogramColumn must not be null
      RuntimeException - histogramColumn must be numeric
    • calc

      public static Table calc​(Table table, String histogramColumn, double rangeMin, double rangeMax, int nbins, PlotInfo plotInfo, List<String> byColumns)
      Splits the specified range into nbins equally sized bins. Calculates the number of data values in each bin.

      Data which is not normal as defined in DoubleFpPrimitives.isNormal(double) is filtered out of the data set.

      Parameters:
      table - table
      histogramColumn - histogramColumn in table
      rangeMin - range minimum
      rangeMax - range maximum
      nbins - number of bins
      plotInfo - plot information
      byColumns - other columns needed to calculate histogram, these columns will be included while grouping
      Returns:
      table holding the calculated bins and their counts
      Throws:
      com.fishlib.base.verify.RequirementFailure - table and histogramColumn must not be null
      RuntimeException - histogramColumn must be numeric
    • collapse

      public static Table collapse​(Table table, Collection<String> byCols)
      Collapses results of #calc(...) down to a single series. In the case that we're not pre-filtered by our byCols, then we will potentially end up having duplicated series for a given Range. We should, instead, collapse that down to a single row-per-Range
      Parameters:
      table - the result of a previous call to #calc(...)
      byCols - the columns which will become array-values because we're no longer grouped by them
      Returns:
      the collapsed results where there is a single row per Range/bin