org.opensourcephysics.tools
Class DatasetCurveFitter

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.opensourcephysics.tools.DatasetCurveFitter
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class DatasetCurveFitter
extends javax.swing.JPanel

A panel that displays and controls functional curve fits to a Dataset.

Version:
1.0
Author:
Douglas Brown
See Also:
Serialized Form

Nested Class Summary
 class DatasetCurveFitter.MinimizeMultiVarFunction
          A function whose value is the total deviation squared between a multivariable function and a set of data points.
 class DatasetCurveFitter.MinimizeUserFunction
          A function whose value is the total deviation squared between a user function and a set of data points.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DatasetCurveFitter(Dataset data, FitBuilder builder)
          Constructs a DatasetCurveFitter for the specified Dataset.
 
Method Summary
 void addFitFunction(KnownFunction f, boolean addToFitBuilder)
          Adds a fit function.
protected  UserFunction createClone(KnownFunction f, java.lang.String name)
           
protected  void createGUI()
          Creates the GUI.
 void doLinearRegression(double[] xd, double[] yd, boolean isLinearFit)
          Determines the Pearson correlation and linear fit parameter SEs.
 double fit(KnownFunction fit)
          Fits a fit function to the current data.
protected  javax.swing.JDialog getColorDialog()
           
 Dataset getData()
          Gets the data.
 FunctionDrawer getDrawer()
          Gets the function drawer.
 java.awt.Dimension getMinimumSize()
           
 java.lang.String getSelectedFitName()
          Gets the selected fit name.
 java.util.Map<java.lang.String,java.lang.Double> getSelectedFitParameters()
          Gets the selected fit parameters.
 double getUncertainty(int paramIndex)
          Gets the estimated uncertainty (standard error or other) of a best fit parameter.
 java.lang.String getUncertaintyString(int paramIndex)
          Returns a string of the uncertainty with appropriate formatting.
protected  void refreshFits()
          Refreshes the fit names.
protected  void refreshGUI()
          Refreshes the GUI.
 void refreshStatusBar()
          Refreshes the parent tab's status bar
protected  void selectFit(java.lang.String name)
          Selects a named fit.
 void setActive(boolean active)
          Sets the active flag.
 void setAutofit(boolean auto)
          Sets the autofit flag.
 void setColor(java.awt.Color newColor)
          Sets the color.
 void setData(Dataset data)
          Sets the dataset.
protected  void setDataToolTab(DataToolTab tab)
           
static void setDefaultFitFunctions(java.util.ArrayList<KnownFunction> functions)
          Sets the default fit functions.
protected  void setFontLevel(int level)
          Sets the font level.
protected  void setParameterValue(int row, double value)
          Sets the value of a parameter.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DatasetCurveFitter

public DatasetCurveFitter(Dataset data,
                          FitBuilder builder)
Constructs a DatasetCurveFitter for the specified Dataset.

Parameters:
data - the dataset
builder - the FitBuilder used for constructing custom fits
Method Detail

getDrawer

public FunctionDrawer getDrawer()
Gets the function drawer.

Returns:
the drawer

getData

public Dataset getData()
Gets the data.

Returns:
the dataset

setData

public void setData(Dataset data)
Sets the dataset.

Parameters:
data - the dataset

setColor

public void setColor(java.awt.Color newColor)
Sets the color.

Parameters:
newColor - the color

setAutofit

public void setAutofit(boolean auto)
Sets the autofit flag.

Parameters:
auto - true to autofit

setActive

public void setActive(boolean active)
Sets the active flag.

Parameters:
active - true

fit

public double fit(KnownFunction fit)
Fits a fit function to the current data.

Parameters:
fit - the function to fit
Returns:
the rms deviation

addFitFunction

public void addFitFunction(KnownFunction f,
                           boolean addToFitBuilder)
Adds a fit function. UserFunctions can optionally be added to the fit builder.

Parameters:
f - the fit function to add
addToFitBuilder - true to add a UserFunction to the fit builder

getSelectedFitName

public java.lang.String getSelectedFitName()
Gets the selected fit name.

Returns:
the name of the fit

refreshStatusBar

public void refreshStatusBar()
Refreshes the parent tab's status bar


getUncertainty

public double getUncertainty(int paramIndex)
Gets the estimated uncertainty (standard error or other) of a best fit parameter. Returns Double.NaN if uncertainty is unknown or is not best fit.

Parameters:
paramIndex - the parameter index
Returns:
the estimated uncertainty in the parameter

getUncertaintyString

public java.lang.String getUncertaintyString(int paramIndex)
Returns a string of the uncertainty with appropriate formatting.

Parameters:
paramIndex - the parameter index
Returns:
the uncertainty string

getSelectedFitParameters

public java.util.Map<java.lang.String,java.lang.Double> getSelectedFitParameters()
Gets the selected fit parameters.

Returns:
a map of parameter names to values

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class javax.swing.JComponent

createGUI

protected void createGUI()
Creates the GUI.


refreshGUI

protected void refreshGUI()
Refreshes the GUI.


refreshFits

protected void refreshFits()
Refreshes the fit names.


setDataToolTab

protected void setDataToolTab(DataToolTab tab)

setFontLevel

protected void setFontLevel(int level)
Sets the font level.

Parameters:
level - the level

setParameterValue

protected void setParameterValue(int row,
                                 double value)
Sets the value of a parameter.

Parameters:
row - the row number
value - the value

selectFit

protected void selectFit(java.lang.String name)
Selects a named fit.

Parameters:
name - the name of the fit function

createClone

protected UserFunction createClone(KnownFunction f,
                                   java.lang.String name)

doLinearRegression

public void doLinearRegression(double[] xd,
                               double[] yd,
                               boolean isLinearFit)
Determines the Pearson correlation and linear fit parameter SEs.

Parameters:
xd - double[]
yd - double[]
isLinearFit - true if linear fit (sets uncertainties to slope and intercept SE)

getColorDialog

protected javax.swing.JDialog getColorDialog()

setDefaultFitFunctions

public static void setDefaultFitFunctions(java.util.ArrayList<KnownFunction> functions)
Sets the default fit functions. Every instance of DatasetCurveFitter will make these fits available.

Parameters:
functions - the fit functions