afreechart/src/main/java/org/afree/data/general/DatasetUtilities.java
/**
     * Returns the range of x-values in the specified dataset for the data items
     * belonging to the visible series.
     * 
     * @param dataset
     *            the dataset (<code>null</code> not permitted).
     * @param visibleSeriesKeys
     *            the visible series keys (<code>null</code> not permitted).
     * @param includeInterval
     *            a flag that determines whether or not the y-interval for the
     *            dataset is included (this only applies if the dataset is an
     *            instance of IntervalXYDataset).
     * 
     * @return The x-range (possibly <code>null</code>).
     * 
     * @since JFreeChart 1.0.13
     */
Returns the range of x-values in the specified dataset for the data items
belonging to the visible series.

@param dataset
the dataset (null not permitted).
@param visibleSeriesKeys
the visible series keys (null not permitted).
@param includeInterval
a flag that determines whether or not the y-interval for the
dataset is included (this only applies if the dataset is an
instance of IntervalXYDataset).

@return The x-range (possibly null).


Returns the range of x - values in the specified dataset for the data items belonging to the visible series . @param dataset the dataset ( null not permitted ) . @param visibleSeriesKeys the visible series keys ( null not permitted ) . @param includeInterval a flag that determines whether or not the y - interval for the dataset is included ( this only applies if the dataset is an instance of IntervalXYDataset ) . @return The x - range ( possibly null ) .
public static Range iterateToFindDomainBounds(XYDataset dataset,
            List visibleSeriesKeys, boolean includeInterval) {
        if (dataset == null) {
            throw new IllegalArgumentException("Null 'dataset' argument.");
        }
        if (visibleSeriesKeys == null) {
            throw new IllegalArgumentException(
                    "Null 'visibleSeriesKeys' argument.");
        }
        double minimum = Double.POSITIVE_INFINITY;
        double maximum = Double.NEGATIVE_INFINITY;
        if (includeInterval && dataset instanceof IntervalXYDataset) {
            IntervalXYDataset ixyd = (IntervalXYDataset) dataset;
            Iterator iterator = visibleSeriesKeys.iterator();
            while (iterator.hasNext()) {
                Comparable seriesKey = (Comparable) iterator.next();
                int series = dataset.indexOf(seriesKey);
                int itemCount = dataset.getItemCount(series);
                for (int item = 0; item < itemCount; item++) {
                    double lvalue = ixyd.getStartXValue(series, item);
                    double uvalue = ixyd.getEndXValue(series, item);
                    if (!Double.isNaN(lvalue)) {
                        minimum = Math.min(minimum, lvalue);
                    }
                    if (!Double.isNaN(uvalue)) {
                        maximum = Math.max(maximum, uvalue);
                    }
                }
            }
        } else {
            Iterator iterator = visibleSeriesKeys.iterator();
            while (iterator.hasNext()) {
                Comparable seriesKey = (Comparable) iterator.next();
                int series = dataset.indexOf(seriesKey);
                int itemCount = dataset.getItemCount(series);
                for (int item = 0; item < itemCount; item++) {
                    double x = dataset.getXValue(series, item);
                    if (!Double.isNaN(x)) {
                        minimum = Math.min(minimum, x);
                        maximum = Math.max(maximum, x);
                    }
                }
            }
        }
        if (minimum == Double.POSITIVE_INFINITY) {
            return null;
        } else {
            return new Range(minimum, maximum);
        }
    }
public static Range iterateToFindDomainBounds ( XYDataset dataset , List visibleSeriesKeys , boolean includeInterval ) { if ( dataset == null ) { throw new IllegalArgumentException ( "Null 'dataset' argument." ) ; } if ( visibleSeriesKeys == null ) { throw new IllegalArgumentException ( "Null 'visibleSeriesKeys' argument." ) ; } double minimum = Double . POSITIVE_INFINITY ; double maximum = Double . NEGATIVE_INFINITY ; if ( includeInterval && dataset instanceof IntervalXYDataset ) { IntervalXYDataset ixyd = ( IntervalXYDataset ) dataset ; Iterator iterator = visibleSeriesKeys . iterator ( ) ; while ( iterator . hasNext ( ) ) { Comparable seriesKey = ( Comparable ) iterator . next ( ) ; int series = dataset . indexOf ( seriesKey ) ; int itemCount = dataset . getItemCount ( series ) ; for ( int item = 0 ; item < itemCount ; item ++ ) { double lvalue = ixyd . getStartXValue ( series , item ) ; double uvalue = ixyd . getEndXValue ( series , item ) ; if ( ! Double . isNaN ( lvalue ) ) { minimum = Math . min ( minimum , lvalue ) ; } if ( ! Double . isNaN ( uvalue ) ) { maximum = Math . max ( maximum , uvalue ) ; } } } } else { Iterator iterator = visibleSeriesKeys . iterator ( ) ; while ( iterator . hasNext ( ) ) { Comparable seriesKey = ( Comparable ) iterator . next ( ) ; int series = dataset . indexOf ( seriesKey ) ; int itemCount = dataset . getItemCount ( series ) ; for ( int item = 0 ; item < itemCount ; item ++ ) { double x = dataset . getXValue ( series , item ) ; if ( ! Double . isNaN ( x ) ) { minimum = Math . min ( minimum , x ) ; maximum = Math . max ( maximum , x ) ; } } } } if ( minimum == Double . POSITIVE_INFINITY ) { return null ; } else { return new Range ( minimum , maximum ) ; } }
Returns the range of x-values in the specified dataset for the data items
 belonging to the visible series.
Returns the range of x - values in the specified dataset for the data items belonging to the visible series .
// handle special case of IntervalXYDataset // standard case - plain XYDataset