org.jfree.data.statistics
Class HistogramDataset

java.lang.Object
  extended byorg.jfree.data.general.AbstractDataset
      extended byorg.jfree.data.general.AbstractSeriesDataset
          extended byorg.jfree.data.xy.AbstractXYDataset
              extended byorg.jfree.data.xy.AbstractIntervalXYDataset
                  extended byorg.jfree.data.statistics.HistogramDataset
All Implemented Interfaces:
java.lang.Cloneable, Dataset, java.util.EventListener, IntervalXYDataset, java.io.ObjectInputValidation, java.io.Serializable, SeriesChangeListener, SeriesDataset, XYDataset

public class HistogramDataset
extends AbstractIntervalXYDataset
implements IntervalXYDataset, java.lang.Cloneable, java.io.Serializable

A dataset that can be used for creating histograms.

See the HistogramDemo.java file in the JFreeChart distribution for an example.

Author:
Jelai Wang, jelaiw AT mindspring.com
See Also:
Serialized Form

Constructor Summary
HistogramDataset()
          Creates a new (empty) dataset with a default type of HistogramType.FREQUENCY.
 
Method Summary
 void addSeries(java.lang.String name, double[] values, int bins)
          Adds a series to the dataset, using the specified number of bins.
 void addSeries(java.lang.String name, double[] values, int bins, double minimum, double maximum)
          Adds a series to the dataset.
 java.lang.Object clone()
          Returns a clone of the dataset.
 boolean equals(java.lang.Object obj)
          Tests this dataset for equality with an arbitrary object.
 java.lang.Number getEndX(int series, int item)
          Returns the end value for a bin.
 java.lang.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).
 int getItemCount(int series)
          Returns the number of data items for a series.
 int getSeriesCount()
          Returns the number of series in the dataset.
 java.lang.String getSeriesName(int series)
          Returns the name for a series.
 java.lang.Number getStartX(int series, int item)
          Returns the start value for a bin.
 java.lang.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).
 HistogramType getType()
          Returns the histogram type.
 java.lang.Number getX(int series, int item)
          Returns the X value for a bin.
 java.lang.Number getY(int series, int item)
          Returns the y-value for a bin (calculated to take into account the histogram type).
 void setType(HistogramType type)
          Sets the histogram type and sends a DatasetChangeEvent to all registered listeners.
 
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
seriesChanged
 
Methods inherited from class org.jfree.data.general.AbstractDataset
addChangeListener, fireDatasetChanged, getGroup, notifyListeners, removeChangeListener, setGroup, validateObject
 
Methods inherited from class java.lang.Object
finalize, 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.Dataset
addChangeListener, getGroup, removeChangeListener, setGroup
 

Constructor Detail

HistogramDataset

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

Method Detail

getType

public HistogramType getType()
Returns the histogram type.

Returns:
the type (never null).

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(java.lang.String name,
                      double[] values,
                      int bins)
Adds a series to the dataset, using the specified number of bins.

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

addSeries

public void addSeries(java.lang.String name,
                      double[] values,
                      int bins,
                      double minimum,
                      double maximum)
Adds a series to the dataset. Any data value falling on a bin boundary will be assigned to the lower value bin, with the exception of the lower bound of the bin range which is always assigned to the first bin.

Parameters:
name - the series name (null not permitted).
values - the raw observations.
bins - the number of bins.
minimum - the lower bound of the bin range.
maximum - the upper bound of the bin range.

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.

getSeriesName

public java.lang.String getSeriesName(int series)
Returns the name for a series.

Specified by:
getSeriesName in interface SeriesDataset
Specified by:
getSeriesName in class AbstractSeriesDataset
Parameters:
series - the series index (zero based).
Returns:
The series name.

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 (zero based).
Returns:
the item count.

getX

public java.lang.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 (zero based).
item - the item index (zero based).
Returns:
The start value.

getY

public java.lang.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 (zero based).
item - the item index (zero based).
Returns:
The y-value.

getStartX

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

Specified by:
getStartX in interface IntervalXYDataset
Parameters:
series - the series index (zero based).
item - the item index (zero based).
Returns:
The start value.

getEndX

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

Specified by:
getEndX in interface IntervalXYDataset
Parameters:
series - the series index (zero based).
item - the item index (zero based).
Returns:
The end value.

getStartY

public java.lang.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 (zero based).
item - the item index (zero based).
Returns:
The y-value.

getEndY

public java.lang.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 (zero based).
item - the item index (zero based).
Returns:
The Y value.

equals

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

Parameters:
obj - the object to test against (null permitted).
Returns:
A boolean.

clone

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

Overrides:
clone in class AbstractDataset
Returns:
A clone of the dataset.
Throws:
java.lang.CloneNotSupportedException - if the object cannot be cloned.