Package org.opensourcephysics.display
Class Histogram
java.lang.Object
org.opensourcephysics.display.DataTable.DataModel
org.opensourcephysics.display.Histogram
- All Implemented Interfaces:
Data,Drawable,LogMeasurable,Measurable
Histogram maps bin number to occurrences. Histogram is Drawable and can be
rendered on a DrawingPanel. Histogram also implements TableModel and can be
displayed in a JTable. By default, bins consist of (notation: [ inclusive, )
exclusive): ..., [-1,0), [0,1), [1,2), ...
- Version:
- 1.1
- Author:
- Joshua Gould, Wolfgang Christian
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classA class to save and load Dataset data in an XMLControl.class -
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanShould the height be adjusted by bin width? Default is false.protected Colorcolor of binsprotected Colorcolor of binsprotected intstyle for drawing binsprotected intan integer ID that identifies this objectstatic final intdraw bin from y min to top of binstatic final intdraw point at top of binbooleanShould histogram be drawn on a log scale? Default is false.final TableModel -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappend(double value) Appends a value with 1 occurence.voidappend(double[] values) Appends an array of values with 1 occurence.voidappend(double value, double numberOfoccurrences) Append a value with number of occurrences to the Histogram.voidAppends values from an input file.voidclear()Clears all data from this histogram and resets min and max values.voiddraw(DrawingPanel drawingPanel, Graphics g) Draws this histogram in the drawing panel.protected voiddrawBin(DrawingPanel drawingPanel, Graphics g, int binNumber, double occurrences) Draws a filled bin.protected voiddrawPoint(DrawingPanel drawingPanel, Graphics g, int binNumber, double occurrences) Draws a point at the top of a bin.doubleGets the offset of the bins.doubleGets the width of a bin.intGets the name of the colummn for rendering in a JTablegetColumnName(int column) Gets the name of the column for rendering in a JTableString[]The column names to be used in the data display tooldouble[][]Gets a 2D array of data.double[][][]Gets a 3D array of data.Some elements (a Group, for instance) do not contain data, but a list of subelements which do.Gets a list of OSP Datasets.Fill color to use for this dataColor[]Fill colors for Data interface.intgetID()Returns a unique identifier for this Data.doublegetLeftMostBinPosition(int binNumber) Method getLeftMostBinPositionLine color to use for this dataColor[]Line colors for Data interface.static XML.ObjectLoaderReturns the XML.ObjectLoader for this class.double[][]Gets a data array containing both the bin centers and the values within the bins.getName()Gets the dataset name.double[][]Gets a data array containing both the bin centers and the values within the bins.doublegetRightMostBinPosition(int binNumber) Method getRightMostBinPositionintGets the number of rows for rendering in a JTable.doublegetValueAt(int row, int column) Gets a bin number or occurrences for bin number for rendering in a JTable.doublegetXMax()Gets the x world coordinate for the right hand side of this histogram.doubleGets the maximum x needed to draw this object on a log scale.doublegetXMin()Gets the x world coordinate for the left hand side of this histogram.doubleGets the minimum x needed to draw this object on a log scale.double[]Gets an array containing the bin centers.doublegetYMax()Gets the y world coordinate for the top of this histogram.doubleGets the maximum y needed to draw this object on a log scale on a log scale.doublegetYMin()Gets the y world coordinate for the bottom of this histogram.doubleGets the minimum y needed to draw this object on a log scale.double[]Gets an array containing the values within the bins.inthashCode(double value) Computes the hash code (bin number) for the specified valuebooleanGets the valid measure flag.voidReads a file and appends the data contained in the file to this Histogram.voidsetBarOffset(double _barOffset) Set the offset of the bars as a fraction of a bin width.voidsetBinColor(Color binColor) Sets the bin color.voidsetBinColor(Color fillColor, Color edgeColor) Sets the bin's fill and edge colors.voidsetBinOffset(double _binOffset) Sets the offset of the bins.voidsetBinStyle(int style) Sets the style for drawing this histogram.voidsetBinWidth(double _binWidth) Sets the width of a bin.voidsetDiscrete(boolean _discrete) Sets the discrete flag.voidsetID(int id) Sets the ID number of this Data.voidsetMeasured(boolean measure) Forces the measured condition of the histogramvoidSets a name that can be used to identify the dataset.voidsetNormalizedToOne(boolean b) Normalizes the occurrences in this histogram to one.voidsetVisible(boolean visibility) Sets the visibility of the histogramvoidsetXYColumnNames(String _xColumnName, String _yColumnName) Sets the column names when rendering this histogram in a JTable.voidsetXYColumnNames(String _xColumnName, String _yColumnName, String _name) Sets the column names when rendering this histogram in a JTable.Creates a string representation of this Histogram.toString()Creates a string representation of this Histogram.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opensourcephysics.display.Drawable
isInteractive
-
Field Details
-
model
-
DRAW_POINT
public static final int DRAW_POINTdraw point at top of bin- See Also:
-
DRAW_BIN
public static final int DRAW_BINdraw bin from y min to top of bin- See Also:
-
logScale
public boolean logScaleShould histogram be drawn on a log scale? Default is false. -
adjustForWidth
public boolean adjustForWidthShould the height be adjusted by bin width? Default is false. -
binFillColor
color of bins -
binEdgeColor
color of bins -
binStyle
protected int binStylestyle for drawing bins -
datasetID
protected int datasetIDan integer ID that identifies this object
-
-
Constructor Details
-
Histogram
public Histogram()Histogram constructor.
-
-
Method Details
-
read
Reads a file and appends the data contained in the file to this Histogram. The format of the file is bins \t occurrences. Lines beginning with # and empty lines are ignored.- Parameters:
inputPathName- A pathname string.- Throws:
IOException- Description of the Exception
-
toSortedString
Creates a string representation of this Histogram. The bins are displayed in ascending order. The format of this string is bin number \t occurrences. Each bin starts on a new line.- Returns:
- A String with the number of occurrences for each bin.
- See Also:
-
toString
Creates a string representation of this Histogram. The format is bin number\t occurrences. Each new bin starts on a new line. -
hashCode
public int hashCode(double value) Computes the hash code (bin number) for the specified value- Parameters:
value-- Returns:
- the hash code
-
append
public void append(double value, double numberOfoccurrences) Append a value with number of occurrences to the Histogram.- Parameters:
value-numberOfoccurrences-
-
append
public void append(double value) Appends a value with 1 occurence.- Parameters:
value-
-
append
Appends values from an input file. Each value is separated by a \n- Parameters:
inputPathName- A pathname string.- Throws:
IOException- Description of the Exception
-
append
public void append(double[] values) Appends an array of values with 1 occurence.- Parameters:
values-
-
setVisible
public void setVisible(boolean visibility) Sets the visibility of the histogram- Parameters:
visibility-
-
draw
Draws this histogram in the drawing panel. -
clear
public void clear()Clears all data from this histogram and resets min and max values. -
setBinStyle
public void setBinStyle(int style) Sets the style for drawing this histogram. Options are DRAW_POINT, which draws a point at the top of the bin, and DRAW_BIN which draws the entire bin down to the x axis. Default is DRAW_BIN.- Parameters:
style-
-
setDiscrete
public void setDiscrete(boolean _discrete) Sets the discrete flag.- Parameters:
_discrete-true<\code> if bins are discrete,false<\code> if bins are continuous.
-
setBinOffset
public void setBinOffset(double _binOffset) Sets the offset of the bins. Default is 0.- Parameters:
_binOffset-
-
setBarOffset
public void setBarOffset(double _barOffset) Set the offset of the bars as a fraction of a bin width. The offset is the amount by which this histogram is shifted to the right, so that it peeks out from behind later histograms when displayed in a DrawingPanel.- Parameters:
_barOffset- The new barOffset value
-
getLineColor
Line color to use for this data- Returns:
-
getLineColors
Line colors for Data interface.- Specified by:
getLineColorsin interfaceData- Returns:
-
getFillColor
Fill color to use for this data- Returns:
-
getFillColors
Fill colors for Data interface.- Specified by:
getFillColorsin interfaceData- Returns:
-
setBinColor
Sets the bin color.- Parameters:
binColor-
-
setBinColor
Sets the bin's fill and edge colors. If the fill color is null the bin is not filled.- Parameters:
fillColor-edgeColor-
-
setBinWidth
public void setBinWidth(double _binWidth) Sets the width of a bin.- Parameters:
_binWidth-
-
setName
Sets a name that can be used to identify the dataset.- Parameters:
name- String
-
getName
Gets the dataset name. -
getColumnNames
The column names to be used in the data display tool- Specified by:
getColumnNamesin interfaceData- Returns:
-
getDataList
Some elements (a Group, for instance) do not contain data, but a list of subelements which do. This method is used by Data displaying tools to create as many pages as needed.- Specified by:
getDataListin interfaceData- Returns:
- A list of DataInformation elements, null if the element itself is a DataInformation
-
setXYColumnNames
Sets the column names when rendering this histogram in a JTable.- Parameters:
_binColumnName-_yColumnName-
-
setXYColumnNames
Sets the column names when rendering this histogram in a JTable.- Parameters:
_binColumnName-_yColumnName-_name- String the name of the histogram
-
setNormalizedToOne
public void setNormalizedToOne(boolean b) Normalizes the occurrences in this histogram to one.- Parameters:
b-
-
getBinWidth
public double getBinWidth()Gets the width of a bin.- Returns:
- The bin width.
-
getBinOffset
public double getBinOffset()Gets the offset of the bins.- Returns:
- The bin offset.
-
getXMin
public double getXMin()Gets the x world coordinate for the left hand side of this histogram.- Specified by:
getXMinin interfaceMeasurable- Returns:
- xmin
-
getXMax
public double getXMax()Gets the x world coordinate for the right hand side of this histogram.- Specified by:
getXMaxin interfaceMeasurable- Returns:
- xmax
-
getYMin
public double getYMin()Gets the y world coordinate for the bottom of this histogram.- Specified by:
getYMinin interfaceMeasurable- Returns:
- minimum y value
-
getYMax
public double getYMax()Gets the y world coordinate for the top of this histogram.- Specified by:
getYMaxin interfaceMeasurable- Returns:
- xmax
-
getXMinLogscale
public double getXMinLogscale()Gets the minimum x needed to draw this object on a log scale.- Specified by:
getXMinLogscalein interfaceLogMeasurable- Returns:
- minimum
-
getXMaxLogscale
public double getXMaxLogscale()Gets the maximum x needed to draw this object on a log scale.- Specified by:
getXMaxLogscalein interfaceLogMeasurable- Returns:
- maximum
-
getYMinLogscale
public double getYMinLogscale()Gets the minimum y needed to draw this object on a log scale.- Specified by:
getYMinLogscalein interfaceLogMeasurable- Returns:
- minimum
-
getYMaxLogscale
public double getYMaxLogscale()Gets the maximum y needed to draw this object on a log scale on a log scale.- Specified by:
getYMaxLogscalein interfaceLogMeasurable- Returns:
- maximum
-
isMeasured
public boolean isMeasured()Gets the valid measure flag. The measure is valid if this histogram is not empty.- Specified by:
isMeasuredin interfaceMeasurable- Returns:
true<\code> if measure is valid.
-
setMeasured
public void setMeasured(boolean measure) Forces the measured condition of the histogram- Parameters:
visibility-
-
getColumnName
Gets the name of the column for rendering in a JTable- Specified by:
getColumnNamein classDataTable.DataModel- Parameters:
column- the column whose value is to be queried- Returns:
- the name
-
getRowCount
public int getRowCount()Gets the number of rows for rendering in a JTable.- Specified by:
getRowCountin classDataTable.DataModel- Returns:
- the count
-
getColumnCount
public int getColumnCount()Gets the name of the colummn for rendering in a JTable- Specified by:
getColumnCountin classDataTable.DataModel- Returns:
- the name
-
getValueAt
public double getValueAt(int row, int column) Gets a bin number or occurrences for bin number for rendering in a JTable.- Specified by:
getValueAtin classDataTable.DataModel- Parameters:
row- the row whose value is to be queriedcolumn- the column whose value is to be queried- Returns:
- the datum
-
setID
public void setID(int id) Sets the ID number of this Data. -
getID
public int getID()Returns a unique identifier for this Data. -
drawPoint
Draws a point at the top of a bin.- Parameters:
drawingPanel-g-binNumber-occurrences-
-
drawBin
Draws a filled bin.- Parameters:
drawingPanel-g-binNumber-occurrences-
-
getXPoints
public double[] getXPoints()Gets an array containing the bin centers.- Returns:
- the bins
-
getYPoints
public double[] getYPoints()Gets an array containing the values within the bins.- Returns:
- the values of the bins
-
getPoints
public double[][] getPoints()Gets a data array containing both the bin centers and the values within the bins.- Returns:
- a double[index][2] array of data
-
getLogPoints
public double[][] getLogPoints()Gets a data array containing both the bin centers and the values within the bins.- Returns:
- a double[index][2] array of data
-
getLeftMostBinPosition
public double getLeftMostBinPosition(int binNumber) Method getLeftMostBinPosition- Parameters:
binNumber-- Returns:
- position
-
getRightMostBinPosition
public double getRightMostBinPosition(int binNumber) Method getRightMostBinPosition- Parameters:
binNumber-- Returns:
- position
-
getData2D
public double[][] getData2D()Description copied from interface:DataGets a 2D array of data. The first column, double[0][] often contains x-values; Remaining columns often contain y values. May return null if data not yet generated or object does not support 2D data. -
getData3D
public double[][][] getData3D()Description copied from interface:DataGets a 3D array of data. May return null if data not yet generated or object does not support 3D data. -
getDatasets
Description copied from interface:DataGets a list of OSP Datasets. May return null if data not yet generated or object does not support Datasets.- Specified by:
getDatasetsin interfaceData- Returns:
- list of Datasets
-
getLoader
Returns the XML.ObjectLoader for this class.- Returns:
- the object loader
-