org.jfree.data.general

Class DatasetUtilities

public final class DatasetUtilities extends Object

A collection of useful static methods relating to datasets.
Method Summary
static doublecalculatePieDatasetTotal(PieDataset dataset)
Calculates the total of all the values in a PieDataset.
static doublecalculateStackTotal(TableXYDataset dataset, int item)
Calculates the total for the y-values in all series for a given item index.
static CategoryDatasetcreateCategoryDataset(String rowKeyPrefix, String columnKeyPrefix, double[][] data)
Creates a CategoryDataset that contains a copy of the data in an array (instances of Double are created to represent the data items).
static CategoryDatasetcreateCategoryDataset(String rowKeyPrefix, String columnKeyPrefix, Number[][] data)
Creates a CategoryDataset that contains a copy of the data in an array.
static CategoryDatasetcreateCategoryDataset(Comparable[] rowKeys, Comparable[] columnKeys, double[][] data)
Creates a CategoryDataset that contains a copy of the data in an array (instances of Double are created to represent the data items).
static CategoryDatasetcreateCategoryDataset(Comparable rowKey, KeyedValues rowData)
Creates a CategoryDataset by copying the data from the supplied KeyedValues instance.
static PieDatasetcreateConsolidatedPieDataset(PieDataset source, Comparable key, double minimumPercent)
Creates a new pie dataset based on the supplied dataset, but modified by aggregating all the low value items (those whose value is lower than the percentThreshold) into a single item with the key "Other".
static PieDatasetcreateConsolidatedPieDataset(PieDataset source, Comparable key, double minimumPercent, int minItems)
Creates a new pie dataset based on the supplied dataset, but modified by aggregating all the low value items (those whose value is lower than the percentThreshold) into a single item.
static PieDatasetcreatePieDatasetForColumn(CategoryDataset dataset, Comparable columnKey)
Creates a pie dataset from a table dataset by taking all the values for a single column.
static PieDatasetcreatePieDatasetForColumn(CategoryDataset dataset, int column)
Creates a pie dataset from a CategoryDataset by taking all the values for a single column.
static PieDatasetcreatePieDatasetForRow(CategoryDataset dataset, Comparable rowKey)
Creates a pie dataset from a table dataset by taking all the values for a single row.
static PieDatasetcreatePieDatasetForRow(CategoryDataset dataset, int row)
Creates a pie dataset from a table dataset by taking all the values for a single row.
static RangefindCumulativeRangeBounds(CategoryDataset dataset)
Calculates the range of values for a dataset where each item is the running total of the items for the current series.
static RangefindDomainBounds(XYDataset dataset)
Returns the range of values in the domain (x-values) of a dataset.
static RangefindDomainBounds(XYDataset dataset, boolean includeInterval)
Returns the range of values in the domain (x-values) of a dataset.
static NumberfindMaximumDomainValue(XYDataset dataset)
Returns the maximum domain value for the specified dataset.
static NumberfindMaximumRangeValue(CategoryDataset dataset)
Returns the maximum range value for the specified dataset.
static NumberfindMaximumRangeValue(XYDataset dataset)
Returns the maximum range value for the specified dataset.
static NumberfindMaximumStackedRangeValue(CategoryDataset dataset)
Returns the maximum value in the dataset range, assuming that values in each category are "stacked".
static NumberfindMinimumDomainValue(XYDataset dataset)
Finds the minimum domain (or X) value for the specified dataset.
static NumberfindMinimumRangeValue(CategoryDataset dataset)
Returns the minimum range value for the specified dataset.
static NumberfindMinimumRangeValue(XYDataset dataset)
Returns the minimum range value for the specified dataset.
static NumberfindMinimumStackedRangeValue(CategoryDataset dataset)
Returns the minimum value in the dataset range, assuming that values in each category are "stacked".
static RangefindRangeBounds(CategoryDataset dataset)
Returns the range of values in the range for the dataset.
static RangefindRangeBounds(CategoryDataset dataset, boolean includeInterval)
Returns the range of values in the range for the dataset.
static RangefindRangeBounds(XYDataset dataset)
Returns the range of values in the range for the dataset.
static RangefindRangeBounds(XYDataset dataset, boolean includeInterval)
Returns the range of values in the range for the dataset.
static RangefindStackedRangeBounds(CategoryDataset dataset)
Returns the minimum and maximum values for the dataset's range (y-values), assuming that the series in one category are stacked.
static RangefindStackedRangeBounds(CategoryDataset dataset, double base)
Returns the minimum and maximum values for the dataset's range (y-values), assuming that the series in one category are stacked.
static RangefindStackedRangeBounds(CategoryDataset dataset, KeyToGroupMap map)
Returns the minimum and maximum values for the dataset's range (y-values), assuming that the series in one category are stacked.
static RangefindStackedRangeBounds(TableXYDataset dataset)
Returns the minimum and maximum values for the dataset's range, assuming that the series are stacked.
static RangefindStackedRangeBounds(TableXYDataset dataset, double base)
Returns the minimum and maximum values for the dataset's range, assuming that the series are stacked, using the specified base value.
static booleanisEmptyOrNull(PieDataset dataset)
Returns true if the dataset is empty (or null), and false otherwise.
static booleanisEmptyOrNull(CategoryDataset dataset)
Returns true if the dataset is empty (or null), and false otherwise.
static booleanisEmptyOrNull(XYDataset dataset)
Returns true if the dataset is empty (or null), and false otherwise.
static RangeiterateCategoryRangeBounds(CategoryDataset dataset, boolean includeInterval)
Iterates over the data item of the category dataset to find the range bounds.
static RangeiterateDomainBounds(XYDataset dataset)
Iterates over the items in an XYDataset to find the range of x-values.
static RangeiterateDomainBounds(XYDataset dataset, boolean includeInterval)
Iterates over the items in an XYDataset to find the range of x-values.
static RangeiterateXYRangeBounds(XYDataset dataset)
Iterates over the data item of the xy dataset to find the range bounds.
static XYDatasetsampleFunction2D(Function2D f, double start, double end, int samples, Comparable seriesKey)
Creates an XYDataset by sampling the specified function over a fixed range.

Method Detail

calculatePieDatasetTotal

public static double calculatePieDatasetTotal(PieDataset dataset)
Calculates the total of all the values in a PieDataset. If the dataset contains negative or null values, they are ignored.

Parameters: dataset the dataset (null not permitted).

Returns: The total.

calculateStackTotal

public static double calculateStackTotal(TableXYDataset dataset, int item)
Calculates the total for the y-values in all series for a given item index.

Parameters: dataset the dataset. item the item index.

Returns: The total.

Since: 1.0.5

createCategoryDataset

public static CategoryDataset createCategoryDataset(String rowKeyPrefix, String columnKeyPrefix, double[][] data)
Creates a CategoryDataset that contains a copy of the data in an array (instances of Double are created to represent the data items).

Row and column keys are created by appending 0, 1, 2, ... to the supplied prefixes.

Parameters: rowKeyPrefix the row key prefix. columnKeyPrefix the column key prefix. data the data.

Returns: The dataset.

createCategoryDataset

public static CategoryDataset createCategoryDataset(String rowKeyPrefix, String columnKeyPrefix, Number[][] data)
Creates a CategoryDataset that contains a copy of the data in an array.

Row and column keys are created by appending 0, 1, 2, ... to the supplied prefixes.

Parameters: rowKeyPrefix the row key prefix. columnKeyPrefix the column key prefix. data the data.

Returns: The dataset.

createCategoryDataset

public static CategoryDataset createCategoryDataset(Comparable[] rowKeys, Comparable[] columnKeys, double[][] data)
Creates a CategoryDataset that contains a copy of the data in an array (instances of Double are created to represent the data items).

Row and column keys are taken from the supplied arrays.

Parameters: rowKeys the row keys (null not permitted). columnKeys the column keys (null not permitted). data the data.

Returns: The dataset.

createCategoryDataset

public static CategoryDataset createCategoryDataset(Comparable rowKey, KeyedValues rowData)
Creates a CategoryDataset by copying the data from the supplied KeyedValues instance.

Parameters: rowKey the row key (null not permitted). rowData the row data (null not permitted).

Returns: A dataset.

createConsolidatedPieDataset

public static PieDataset createConsolidatedPieDataset(PieDataset source, Comparable key, double minimumPercent)
Creates a new pie dataset based on the supplied dataset, but modified by aggregating all the low value items (those whose value is lower than the percentThreshold) into a single item with the key "Other".

Parameters: source the source dataset (null not permitted). key a new key for the aggregated items (null not permitted). minimumPercent the percent threshold.

Returns: The pie dataset with (possibly) aggregated items.

createConsolidatedPieDataset

public static PieDataset createConsolidatedPieDataset(PieDataset source, Comparable key, double minimumPercent, int minItems)
Creates a new pie dataset based on the supplied dataset, but modified by aggregating all the low value items (those whose value is lower than the percentThreshold) into a single item. The aggregated items are assigned the specified key. Aggregation only occurs if there are at least minItems items to aggregate.

Parameters: source the source dataset (null not permitted). key the key to represent the aggregated items. minimumPercent the percent threshold (ten percent is 0.10). minItems only aggregate low values if there are at least this many.

Returns: The pie dataset with (possibly) aggregated items.

createPieDatasetForColumn

public static PieDataset createPieDatasetForColumn(CategoryDataset dataset, Comparable columnKey)
Creates a pie dataset from a table dataset by taking all the values for a single column.

Parameters: dataset the dataset (null not permitted). columnKey the column key.

Returns: A pie dataset.

createPieDatasetForColumn

public static PieDataset createPieDatasetForColumn(CategoryDataset dataset, int column)
Creates a pie dataset from a CategoryDataset by taking all the values for a single column.

Parameters: dataset the dataset (null not permitted). column the column (zero-based index).

Returns: A pie dataset.

createPieDatasetForRow

public static PieDataset createPieDatasetForRow(CategoryDataset dataset, Comparable rowKey)
Creates a pie dataset from a table dataset by taking all the values for a single row.

Parameters: dataset the dataset (null not permitted). rowKey the row key.

Returns: A pie dataset.

createPieDatasetForRow

public static PieDataset createPieDatasetForRow(CategoryDataset dataset, int row)
Creates a pie dataset from a table dataset by taking all the values for a single row.

Parameters: dataset the dataset (null not permitted). row the row (zero-based index).

Returns: A pie dataset.

findCumulativeRangeBounds

public static Range findCumulativeRangeBounds(CategoryDataset dataset)
Calculates the range of values for a dataset where each item is the running total of the items for the current series.

Parameters: dataset the dataset (null not permitted).

Returns: The range.

findDomainBounds

public static Range findDomainBounds(XYDataset dataset)
Returns the range of values in the domain (x-values) of a dataset.

Parameters: dataset the dataset (null not permitted).

Returns: The range of values (possibly null).

findDomainBounds

public static Range findDomainBounds(XYDataset dataset, boolean includeInterval)
Returns the range of values in the domain (x-values) of a dataset.

Parameters: dataset the dataset (null not permitted). includeInterval determines whether or not the x-interval is taken into account (only applies if the dataset is an IntervalXYDataset).

Returns: The range of values (possibly null).

findMaximumDomainValue

public static Number findMaximumDomainValue(XYDataset dataset)
Returns the maximum domain value for the specified dataset. This is easy if the dataset implements the DomainInfo interface (a good idea if there is an efficient way to determine the maximum value). Otherwise, it involves iterating over the entire data-set. Returns null if all the data values in the dataset are null.

Parameters: dataset the dataset (null not permitted).

Returns: The maximum value (possibly null).

findMaximumRangeValue

public static Number findMaximumRangeValue(CategoryDataset dataset)
Returns the maximum range value for the specified dataset. This is easy if the dataset implements the RangeInfo interface (a good idea if there is an efficient way to determine the maximum value). Otherwise, it involves iterating over the entire data-set. Returns null if all the data values are null.

Parameters: dataset the dataset (null not permitted).

Returns: The maximum value (possibly null).

findMaximumRangeValue

public static Number findMaximumRangeValue(XYDataset dataset)
Returns the maximum range value for the specified dataset. This is easy if the dataset implements the RangeInfo interface (a good idea if there is an efficient way to determine the maximum value). Otherwise, it involves iterating over the entire data-set. Returns null if all the data values are null.

Parameters: dataset the dataset (null not permitted).

Returns: The maximum value (possibly null).

findMaximumStackedRangeValue

public static Number findMaximumStackedRangeValue(CategoryDataset dataset)
Returns the maximum value in the dataset range, assuming that values in each category are "stacked".

Parameters: dataset the dataset (null permitted).

Returns: The maximum value (possibly null).

findMinimumDomainValue

public static Number findMinimumDomainValue(XYDataset dataset)
Finds the minimum domain (or X) value for the specified dataset. This is easy if the dataset implements the DomainInfo interface (a good idea if there is an efficient way to determine the minimum value). Otherwise, it involves iterating over the entire data-set.

Returns null if all the data values in the dataset are null.

Parameters: dataset the dataset (null not permitted).

Returns: The minimum value (possibly null).

findMinimumRangeValue

public static Number findMinimumRangeValue(CategoryDataset dataset)
Returns the minimum range value for the specified dataset. This is easy if the dataset implements the RangeInfo interface (a good idea if there is an efficient way to determine the minimum value). Otherwise, it involves iterating over the entire data-set. Returns null if all the data values in the dataset are null.

Parameters: dataset the dataset (null not permitted).

Returns: The minimum value (possibly null).

findMinimumRangeValue

public static Number findMinimumRangeValue(XYDataset dataset)
Returns the minimum range value for the specified dataset. This is easy if the dataset implements the RangeInfo interface (a good idea if there is an efficient way to determine the minimum value). Otherwise, it involves iterating over the entire data-set. Returns null if all the data values in the dataset are null.

Parameters: dataset the dataset (null not permitted).

Returns: The minimum value (possibly null).

findMinimumStackedRangeValue

public static Number findMinimumStackedRangeValue(CategoryDataset dataset)
Returns the minimum value in the dataset range, assuming that values in each category are "stacked".

Parameters: dataset the dataset.

Returns: The minimum value.

findRangeBounds

public static Range findRangeBounds(CategoryDataset dataset)
Returns the range of values in the range for the dataset. This method is the partner for the getDomainExtent method.

Parameters: dataset the dataset (null not permitted).

Returns: The range (possibly null).

findRangeBounds

public static Range findRangeBounds(CategoryDataset dataset, boolean includeInterval)
Returns the range of values in the range for the dataset. This method is the partner for the getDomainExtent method.

Parameters: dataset the dataset (null not permitted). includeInterval a flag that determines whether or not the y-interval is taken into account.

Returns: The range (possibly null).

findRangeBounds

public static Range findRangeBounds(XYDataset dataset)
Returns the range of values in the range for the dataset. This method is the partner for the findDomainBounds method.

Parameters: dataset the dataset (null not permitted).

Returns: The range (possibly null).

findRangeBounds

public static Range findRangeBounds(XYDataset dataset, boolean includeInterval)
Returns the range of values in the range for the dataset. This method is the partner for the findDomainBounds method.

Parameters: dataset the dataset (null not permitted). includeInterval a flag that determines whether or not the y-interval is taken into account.

Returns: The range (possibly null).

findStackedRangeBounds

public static Range findStackedRangeBounds(CategoryDataset dataset)
Returns the minimum and maximum values for the dataset's range (y-values), assuming that the series in one category are stacked.

Parameters: dataset the dataset (null not permitted).

Returns: The range (null if the dataset contains no values).

findStackedRangeBounds

public static Range findStackedRangeBounds(CategoryDataset dataset, double base)
Returns the minimum and maximum values for the dataset's range (y-values), assuming that the series in one category are stacked.

Parameters: dataset the dataset (null not permitted). base the base value for the bars.

Returns: The range (null if the dataset contains no values).

findStackedRangeBounds

public static Range findStackedRangeBounds(CategoryDataset dataset, KeyToGroupMap map)
Returns the minimum and maximum values for the dataset's range (y-values), assuming that the series in one category are stacked.

Parameters: dataset the dataset. map a structure that maps series to groups.

Returns: The value range (null if the dataset contains no values).

findStackedRangeBounds

public static Range findStackedRangeBounds(TableXYDataset dataset)
Returns the minimum and maximum values for the dataset's range, assuming that the series are stacked.

Parameters: dataset the dataset (null not permitted).

Returns: The range ([0.0, 0.0] if the dataset contains no values).

findStackedRangeBounds

public static Range findStackedRangeBounds(TableXYDataset dataset, double base)
Returns the minimum and maximum values for the dataset's range, assuming that the series are stacked, using the specified base value.

Parameters: dataset the dataset (null not permitted). base the base value.

Returns: The range (null if the dataset contains no values).

isEmptyOrNull

public static boolean isEmptyOrNull(PieDataset dataset)
Returns true if the dataset is empty (or null), and false otherwise.

Parameters: dataset the dataset (null permitted).

Returns: A boolean.

isEmptyOrNull

public static boolean isEmptyOrNull(CategoryDataset dataset)
Returns true if the dataset is empty (or null), and false otherwise.

Parameters: dataset the dataset (null permitted).

Returns: A boolean.

isEmptyOrNull

public static boolean isEmptyOrNull(XYDataset dataset)
Returns true if the dataset is empty (or null), and false otherwise.

Parameters: dataset the dataset (null permitted).

Returns: A boolean.

iterateCategoryRangeBounds

public static Range iterateCategoryRangeBounds(CategoryDataset dataset, boolean includeInterval)
Iterates over the data item of the category dataset to find the range bounds.

Parameters: dataset the dataset (null not permitted). includeInterval a flag that determines whether or not the y-interval is taken into account.

Returns: The range (possibly null).

iterateDomainBounds

public static Range iterateDomainBounds(XYDataset dataset)
Iterates over the items in an XYDataset to find the range of x-values.

Parameters: dataset the dataset (null not permitted).

Returns: The range (possibly null).

iterateDomainBounds

public static Range iterateDomainBounds(XYDataset dataset, boolean includeInterval)
Iterates over the items in an XYDataset to find the range of x-values.

Parameters: dataset the dataset (null not permitted). includeInterval a flag that determines, for an IntervalXYDataset, whether the x-interval or just the x-value is used to determine the overall range.

Returns: The range (possibly null).

iterateXYRangeBounds

public static Range iterateXYRangeBounds(XYDataset dataset)
Iterates over the data item of the xy dataset to find the range bounds.

Parameters: dataset the dataset (null not permitted).

Returns: The range (possibly null).

sampleFunction2D

public static XYDataset sampleFunction2D(Function2D f, double start, double end, int samples, Comparable seriesKey)
Creates an XYDataset by sampling the specified function over a fixed range.

Parameters: f the function (null not permitted). start the start value for the range. end the end value for the range. samples the number of sample points (must be > 1). seriesKey the key to give the resulting series (null not permitted).

Returns: A dataset.