SSJ
V. 2.6.

umontreal.iro.lecuyer.charts
Class CustomHistogramDataset

java.lang.Object
  extended by org.jfree.data.general.AbstractDataset
      extended by org.jfree.data.general.AbstractSeriesDataset
          extended by org.jfree.data.xy.AbstractXYDataset
              extended by org.jfree.data.xy.AbstractIntervalXYDataset
                  extended by umontreal.iro.lecuyer.charts.CustomHistogramDataset
All Implemented Interfaces:
ObjectInputValidation, Serializable, Cloneable, EventListener, Dataset, SeriesChangeListener, SeriesDataset, IntervalXYDataset, XYDataset, org.jfree.util.PublicCloneable

public class CustomHistogramDataset
extends AbstractIntervalXYDataset
implements IntervalXYDataset, Cloneable, org.jfree.util.PublicCloneable

A dataset that can be used for creating histograms. This class is inspired from JFreeChart HistogramDataset class, and provides tools to customize histogram bins.

See Also:
Serialized Form

Field Summary
 HistogramType type
          The histogram type.
 
Constructor Summary
CustomHistogramDataset()
          Creates a new (empty) dataset with a default type of HistogramType.FREQUENCY.
 
Method Summary
 void addSeries(Comparable key, double[] values, HistogramBin[] bins)
          Adds a series to the dataset.
 void addSeries(Comparable key, double[] values, int bins)
          Adds a series to the dataset, using the specified number of bins.
 void addSeries(Comparable key, double[] values, int bins, double minimum, double maximum)
          Adds a series to the dataset.
 void addSeries(Comparable key, double[] values, int numPoints, HistogramBin[] bins)
          Adds a series to the dataset.
 void addSeries(Comparable key, double[] values, int numPoints, int bins)
          Adds a series to the dataset, using the specified number of bins.
 void addSeries(Comparable key, double[] values, int numPoints, int bins, double minimum, double maximum)
          Adds a series to the dataset.
 Object clone()
          Returns a clone of the dataset.
 boolean equals(Object obj)
          Tests this dataset for equality with an arbitrary object.
 List getBins(int series)
          Returns the bins for a series.
 double getBinWidth(int series)
          Returns the bin width for a series.
 Number getEndX(int series, int item)
          Returns the end value for a bin.
 Number getEndY(int series, int item)
          Returns the end y-value for a bin (which is the same as the y-value).
 int getItemCount(int series)
          Returns the number of data items for a series.
 int getSeriesCount()
          Returns the number of series in the dataset.
 Comparable getSeriesKey(int series)
          Returns the key for a series.
 Number getStartX(int series, int item)
          Returns the start value for a bin.
 Number getStartY(int series, int item)
          Returns the start y-value for a bin (which is the same as the y-value).
 int getTotal(int series)
          Returns the total number of observations for a series.
 HistogramType getType()
          Returns the histogram type.
 double[] getValues(int series)
          Returns the values for a series.
 List getValuesList(int series)
          Returns the values for a series.
 Number getX(int series, int item)
          Returns the X value for a bin.
 Number getY(int series, int item)
          Returns the y-value for a bin (calculated to take into account the histogram type).
 void setBins(int series, HistogramBin[] bins)
          Sets the bins for a series.
 void setBins(int series, int bins)
          Sets the bins for a series.
 void setBins(int series, int bins, double minimum, double maximum)
          Sets the bins for a series.
 void setType(HistogramType type)
          Sets the histogram type and sends a DatasetChangeEvent to all registered listeners.
 void setValues(int series, double[] values)
          Sets the values for a series.
 void setValues(int series, List valuesList)
          Sets the values for a series.
 
Methods inherited from class org.jfree.data.xy.AbstractIntervalXYDataset
getEndXValue, getEndYValue, getStartXValue, getStartYValue
 
Methods inherited from class org.jfree.data.xy.AbstractXYDataset
getDomainOrder, getXValue, getYValue
 
Methods inherited from class org.jfree.data.general.AbstractSeriesDataset
indexOf, seriesChanged
 
Methods inherited from class org.jfree.data.general.AbstractDataset
addChangeListener, getGroup, hasListener, removeChangeListener, setGroup, validateObject
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jfree.data.xy.IntervalXYDataset
getEndXValue, getEndYValue, getStartXValue, getStartYValue
 
Methods inherited from interface org.jfree.data.xy.XYDataset
getDomainOrder, getXValue, getYValue
 
Methods inherited from interface org.jfree.data.general.SeriesDataset
indexOf
 
Methods inherited from interface org.jfree.data.general.Dataset
addChangeListener, getGroup, removeChangeListener, setGroup
 

Field Detail

type

public HistogramType type
The histogram type.

Constructor Detail

CustomHistogramDataset

public CustomHistogramDataset()
Creates a new (empty) dataset with a default type of HistogramType.FREQUENCY.

Method Detail

getType

public HistogramType getType()
Returns the histogram type.


setType

public void setType(HistogramType type)
Sets the histogram type and sends a DatasetChangeEvent to all registered listeners.

Parameters:
type - the type (null not permitted).

addSeries

public void addSeries(Comparable key,
                      double[] values,
                      int bins)
Adds a series to the dataset, using the specified number of bins.

Parameters:
key - the series key (null not permitted).
values - the values (null not permitted).
bins - the number of bins (must be at least 1).

addSeries

public void addSeries(Comparable key,
                      double[] values,
                      int numPoints,
                      int bins)
Adds a series to the dataset, using the specified number of bins.

Parameters:
key - the series key (null not permitted).
values - the values (null not permitted).
numPoints - only the first numPoints values are used.
bins - the number of bins (must be at least 1).

addSeries

public void addSeries(Comparable key,
                      double[] values,
                      int bins,
                      double minimum,
                      double maximum)
Adds a series to the dataset. Any data value less than minimum will be assigned to the first bin, and any data value greater than maximum will be assigned to the last bin. Values falling on the boundary of adjacent bins will be assigned to the higher indexed bin.

Parameters:
key - the series key (null not permitted).
values - the raw observations.
bins - the number of bins (must be at least 1).
minimum - the lower bound of the bin range.
maximum - the upper bound of the bin range.

addSeries

public void addSeries(Comparable key,
                      double[] values,
                      int numPoints,
                      int bins,
                      double minimum,
                      double maximum)
Adds a series to the dataset. Any data value less than minimum will be assigned to the first bin, and any data value greater than maximum will be assigned to the last bin. Values falling on the boundary of adjacent bins will be assigned to the higher indexed bin. Only the first numPoints values are used.

Parameters:
key - the series key (null not permitted).
values - the raw observations.
numPoints - only the first numPoints values are used.
bins - the number of bins (must be at least 1).
minimum - the lower bound of the bin range.
maximum - the upper bound of the bin range.

addSeries

public void addSeries(Comparable key,
                      double[] values,
                      HistogramBin[] bins)
Adds a series to the dataset. Values falling on the boundary of adjacent bins will be assigned to the higher indexed bin.

Parameters:
key - the series key (null not permitted).
values - the raw observations.
bins - new bins (size must be at least 1).

addSeries

public void addSeries(Comparable key,
                      double[] values,
                      int numPoints,
                      HistogramBin[] bins)
Adds a series to the dataset. Values falling on the boundary of adjacent bins will be assigned to the higher indexed bin.

Parameters:
key - the series key (null not permitted).
values - the raw observations.
numPoints - only the first numPoints values are used.
bins - new bins (size must be at least 1).

getBins

public List getBins(int series)
Returns the bins for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
Returns:
A list of bins.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

setBins

public void setBins(int series,
                    int bins)
Sets the bins for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
bins - the number of bins (must be at least 1).
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

setBins

public void setBins(int series,
                    int bins,
                    double minimum,
                    double maximum)
Sets the bins for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
bins - the number of bins (must be at least 1).
minimum - the lower bound of the bin range.
maximum - the upper bound of the bin range.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

setBins

public void setBins(int series,
                    HistogramBin[] bins)
Sets the bins for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
bins - the number of bins (must be at least 1).
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getValuesList

public List getValuesList(int series)
Returns the values for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
Returns:
A list of values.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getValues

public double[] getValues(int series)
Returns the values for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
Returns:
A table of values.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

setValues

public void setValues(int series,
                      List valuesList)
Sets the values for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
valuesList - List of new values.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

setValues

public void setValues(int series,
                      double[] values)
Sets the values for a series.

Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
values - Table of new values.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getTotal

public int getTotal(int series)
Returns the total number of observations for a series.

Parameters:
series - the series index.
Returns:
The total.

getBinWidth

public double getBinWidth(int series)
Returns the bin width for a series.

Parameters:
series - the series index (zero based).
Returns:
The bin width.

getSeriesCount

public int getSeriesCount()
Returns the number of series in the dataset.

Specified by:
getSeriesCount in interface SeriesDataset
Specified by:
getSeriesCount in class AbstractSeriesDataset
Returns:
The series count.

getSeriesKey

public Comparable getSeriesKey(int series)
Returns the key for a series.

Specified by:
getSeriesKey in interface SeriesDataset
Specified by:
getSeriesKey in class AbstractSeriesDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
Returns:
The series key.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getItemCount

public int getItemCount(int series)
Returns the number of data items for a series.

Specified by:
getItemCount in interface XYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
Returns:
The item count.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getX

public Number getX(int series,
                   int item)
Returns the X value for a bin. This value won't be used for plotting histograms, since the renderer will ignore it. But other renderers can use it (for example, you could use the dataset to create a line chart).

Specified by:
getX in interface XYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
item - the item index (zero based).
Returns:
The start value.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getY

public Number getY(int series,
                   int item)
Returns the y-value for a bin (calculated to take into account the histogram type).

Specified by:
getY in interface XYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
item - the item index (zero based).
Returns:
The y-value.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getStartX

public Number getStartX(int series,
                        int item)
Returns the start value for a bin.

Specified by:
getStartX in interface IntervalXYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
item - the item index (zero based).
Returns:
The start value.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getEndX

public Number getEndX(int series,
                      int item)
Returns the end value for a bin.

Specified by:
getEndX in interface IntervalXYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
item - the item index (zero based).
Returns:
The end value.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getStartY

public Number getStartY(int series,
                        int item)
Returns the start y-value for a bin (which is the same as the y-value). This method exists only to support the general form of the {IntervalXYDataset} interface.

Specified by:
getStartY in interface IntervalXYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
item - the item index (zero based).
Returns:
The y-value.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

getEndY

public Number getEndY(int series,
                      int item)
Returns the end y-value for a bin (which is the same as the y-value). This method exists only to support the general form of the IntervalXYDataset} interface.

Specified by:
getEndY in interface IntervalXYDataset
Parameters:
series - the series index (in the range 0 to getSeriesCount() - 1).
item - the item index (zero based).
Returns:
The Y value.
Throws:
IndexOutOfBoundsException - if series is outside the specified range.

equals

public boolean equals(Object obj)
Tests this dataset for equality with an arbitrary object.

Overrides:
equals in class Object
Parameters:
obj - the object to test against (null permitted).
Returns:
A boolean.

clone

public Object clone()
             throws CloneNotSupportedException
Returns a clone of the dataset.

Specified by:
clone in interface org.jfree.util.PublicCloneable
Overrides:
clone in class AbstractDataset
Returns:
A clone of the dataset.
Throws:
CloneNotSupportedException - if the object cannot be cloned.

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.