Package org.jfree.data.statistics
Class HistogramDataset
- java.lang.Object
-
- org.jfree.data.general.AbstractDataset
-
- org.jfree.data.general.AbstractSeriesDataset
-
- org.jfree.data.xy.AbstractXYDataset
-
- org.jfree.data.xy.AbstractIntervalXYDataset
-
- org.jfree.data.statistics.HistogramDataset
-
- All Implemented Interfaces:
java.io.ObjectInputValidation
,java.io.Serializable
,java.lang.Cloneable
,java.util.EventListener
,PublicCloneable
,Dataset
,SeriesChangeListener
,SeriesDataset
,IntervalXYDataset
,XYDataset
public class HistogramDataset extends AbstractIntervalXYDataset implements IntervalXYDataset, java.lang.Cloneable, PublicCloneable, java.io.Serializable
A dataset that can be used for creating histograms.- See Also:
SimpleHistogramDataset
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List
list
A list of maps.private static long
serialVersionUID
For serialization.private HistogramType
type
The histogram type.
-
Constructor Summary
Constructors Constructor Description HistogramDataset()
Creates a new (empty) dataset with a default type ofHistogramType
.FREQUENCY.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSeries(java.lang.Comparable key, double[] values, int bins)
Adds a series to the dataset, using the specified number of bins, and sends aDatasetChangeEvent
to all registered listeners.void
addSeries(java.lang.Comparable key, 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.(package private) java.util.List
getBins(int series)
Returns the bins for a series.private double
getBinWidth(int series)
Returns the bin width for a series.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 theIntervalXYDataset
interface).int
getItemCount(int series)
Returns the number of data items for a series.private double
getMaximum(double[] values)
Returns the maximum value in an array of values.private double
getMinimum(double[] values)
Returns the minimum value in an array of values.int
getSeriesCount()
Returns the number of series in the dataset.java.lang.Comparable
getSeriesKey(int series)
Returns the key 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 theIntervalXYDataset
interface).private int
getTotal(int series)
Returns the total number of observations for a series.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 aDatasetChangeEvent
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
indexOf, seriesChanged
-
Methods inherited from class org.jfree.data.general.AbstractDataset
addChangeListener, canEqual, fireDatasetChanged, getGroup, getNotify, hashCode, hasListener, notifyListeners, removeChangeListener, setGroup, setNotify, validateObject
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jfree.data.general.Dataset
addChangeListener, getGroup, removeChangeListener, setGroup
-
Methods inherited from interface org.jfree.data.xy.IntervalXYDataset
getEndXValue, getEndYValue, getStartXValue, getStartYValue
-
Methods inherited from interface org.jfree.data.general.SeriesDataset
indexOf
-
Methods inherited from interface org.jfree.data.xy.XYDataset
getDomainOrder, getXValue, getYValue
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
list
private java.util.List list
A list of maps.
-
type
private HistogramType type
The histogram type.
-
-
Constructor Detail
-
HistogramDataset
public HistogramDataset()
Creates a new (empty) dataset with a default type ofHistogramType
.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 aDatasetChangeEvent
to all registered listeners.- Parameters:
type
- the type (null
not permitted).
-
addSeries
public void addSeries(java.lang.Comparable key, double[] values, int bins)
Adds a series to the dataset, using the specified number of bins, and sends aDatasetChangeEvent
to all registered listeners.- 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(java.lang.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.
-
getMinimum
private double getMinimum(double[] values)
Returns the minimum value in an array of values.- Parameters:
values
- the values (null
not permitted and zero-length array not permitted).- Returns:
- The minimum value.
-
getMaximum
private double getMaximum(double[] values)
Returns the maximum value in an array of values.- Parameters:
values
- the values (null
not permitted and zero-length array not permitted).- Returns:
- The maximum value.
-
getBins
java.util.List getBins(int series)
Returns the bins for a series.- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).- Returns:
- A list of bins.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
getTotal
private int getTotal(int series)
Returns the total number of observations for a series.- Parameters:
series
- the series index.- Returns:
- The total.
-
getBinWidth
private 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 interfaceSeriesDataset
- Specified by:
getSeriesCount
in classAbstractSeriesDataset
- Returns:
- The series count.
-
getSeriesKey
public java.lang.Comparable getSeriesKey(int series)
Returns the key for a series.- Specified by:
getSeriesKey
in interfaceSeriesDataset
- Specified by:
getSeriesKey
in classAbstractSeriesDataset
- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).- Returns:
- The series key.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
getItemCount
public int getItemCount(int series)
Returns the number of data items for a series.- Specified by:
getItemCount
in interfaceXYDataset
- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).- Returns:
- The item count.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
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).
-
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).
-
getStartX
public java.lang.Number getStartX(int series, int item)
Returns the start value for a bin.- Specified by:
getStartX
in interfaceIntervalXYDataset
- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).item
- the item index (zero based).- Returns:
- The start value.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
getEndX
public java.lang.Number getEndX(int series, int item)
Returns the end value for a bin.- Specified by:
getEndX
in interfaceIntervalXYDataset
- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).item
- the item index (zero based).- Returns:
- The end value.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
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 theIntervalXYDataset
interface).- Specified by:
getStartY
in interfaceIntervalXYDataset
- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).item
- the item index (zero based).- Returns:
- The y-value.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
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 theIntervalXYDataset
interface).- Specified by:
getEndY
in interfaceIntervalXYDataset
- Parameters:
series
- the series index (in the range0
togetSeriesCount() - 1
).item
- the item index (zero based).- Returns:
- The Y value.
- Throws:
java.lang.IndexOutOfBoundsException
- ifseries
is outside the specified range.
-
equals
public boolean equals(java.lang.Object obj)
Tests this dataset for equality with an arbitrary object.- Overrides:
equals
in classAbstractDataset
- 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.- Specified by:
clone
in interfacePublicCloneable
- Overrides:
clone
in classAbstractDataset
- Returns:
- A clone of the dataset.
- Throws:
java.lang.CloneNotSupportedException
- if the object cannot be cloned.
-
-