edu.uah.math.devices
Class ScatterPlot

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 edu.uah.math.devices.Graph
                      extended by edu.uah.math.devices.ScatterPlot
All Implemented Interfaces:
java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
BivariateScatterPlot, CoinScatter, NeedleScatter, TriangleScatter, UserScatterPlot

public class ScatterPlot
extends Graph
implements java.awt.event.MouseMotionListener, java.io.Serializable

This class defines a basic two-dimensional scatterplot that can be sub-classed. The points are stored as two vectors, one containing the x coordinates and one containing the y coordinates. The domains and names of the variables can be specified. The graphs shows axes of the two variables and the points as red dots.

Version:
August, 2003
Author:
Kyle Siegrist, Dawn Duehring
See Also:
Serialized Form

Nested Class Summary
 
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 edu.uah.math.devices.Graph
ABOVE, BELOW, HORIZONTAL, LEFT, RIGHT, showModelDistribution, VERTICAL
 
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
ScatterPlot()
          This default constructor creates a new scatterplot with common domain [0, 1] and default names "x" and "y"
ScatterPlot(Domain d)
          This special constructor creates a new scatterplot with a specified common domain and default names "x" and "y".
ScatterPlot(Domain d1, Domain d2)
          This special constructor creates a new scatterplot with specified domains and default names "x" and "y".
ScatterPlot(Domain d1, java.lang.String n1, Domain d2, java.lang.String n2)
          This general constructor creates a new scatterplot with specified domains and names.
ScatterPlot(Domain d, java.lang.String n1, java.lang.String n2)
          This special constructor creates a new scatterplot with a specified common x and y domain and specified names.
 
Method Summary
 void addPoint()
          This method adds a random data point of default color red to the dataset.
 void addPoint(java.awt.Color c)
          This method adds a random data point of a specified color to the dataset.
 void addPoint(double x, double y)
          This method adds a specified data point of default color red to the dataset.
 void addPoint(double x, double y, java.awt.Color c)
          This method adds a specified data point of a specified color to the dataset.
 java.awt.Color getBoxColor()
          This method returns the box color.
 java.awt.Color getColor(int i)
          This method gets the color of the point with a specified index.
 java.util.Vector getColors()
          This method returns the vector of colors.
 int getDataSize()
          This method returns the number of data points.
 double getX(int i)
          This method gets the x-coordinate of the point with a specified index.
 java.awt.Color getXAxisColor()
          This method returns the x-axix color.
 java.util.Vector getXCoordinates()
          This method returns the vector of x coordinates.
 Domain getXDomain()
          This method returns the domain of the x variable.
 java.lang.String getXName()
          This method returns the name of the x variable.
 double getY(int i)
          This method gets the y-coordinate of the point with a specified index.
 java.awt.Color getYAxisColor()
          This method returns the y-axis color.
 java.util.Vector getYCoordinates()
          This method returns the vector of y coordinates.
 Domain getYDomain()
          This method returns the domain of the y variable.
 java.lang.String getYName()
          This method returns the name of the y variable.
 void mouseDragged(java.awt.event.MouseEvent event)
           
 void mouseMoved(java.awt.event.MouseEvent e)
          This method handles the mouse move event.
 void paintComponent(java.awt.Graphics g)
          This method paints the scatterplots, including the x and y axes and the boundary box.
 void reset()
          This method resets the scatterplot by clearing the data and redrawing.
 void resetData()
          This method resets the data by clearing the vectors of x coordinates, y coordinates, and colors.
 void setBoxColor(java.awt.Color c)
          This method sets the box color.
 void setDomain(Domain d)
          This method sets the common domain for x and y.
 void setDomains(Domain d1, Domain d2)
          This method sets the domains.
 void setNames(java.lang.String n1, java.lang.String n2)
          This method sets the names of the varaibles.
 void setXAxisColor(java.awt.Color c)
          This method sets the x-axis color.
 void setXDomain(Domain d)
          This method sets the domain of the x variable.
 void setXName(java.lang.String n)
          This method sets the name of the x variable.
 void setYAxisColor(java.awt.Color c)
          This method sets the y-axis color.
 void setYDomain(Domain d)
          This method sets the domain of the y variable.
 void setYName(java.lang.String n)
          This method sets the name of the y variable
 
Methods inherited from class edu.uah.math.devices.Graph
drawAxis, drawAxis, drawAxis, drawBox, drawBox, drawBoxPlot, drawBoxPlot, drawCircle, drawLabel, drawLine, drawPoint, drawTick, drawTick, fillBox, fillBox, fillBoxPlot, fillBoxPlot, fillCircle, format, getBottomMargin, getLeftMargin, getPointSize, getRightMargin, getTopMargin, getXGraph, getXMax, getXMin, getXPixels, getXScale, getYGraph, getYMax, getYMin, getYPixels, getYScale, setMargins, setPointSize, setScale, setShowModelDistribution
 
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, getMinimumSize, 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, 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

ScatterPlot

public ScatterPlot(Domain d1,
                   java.lang.String n1,
                   Domain d2,
                   java.lang.String n2)
This general constructor creates a new scatterplot with specified domains and names.

Parameters:
d1 - the domain of the x variable
n1 - the name of the x variable
d2 - the domain of the y variable
n2 - the name of the y variable

ScatterPlot

public ScatterPlot(Domain d1,
                   Domain d2)
This special constructor creates a new scatterplot with specified domains and default names "x" and "y".

Parameters:
d1 - the domain of the x variable
d2 - the domain of the y variable

ScatterPlot

public ScatterPlot(Domain d,
                   java.lang.String n1,
                   java.lang.String n2)
This special constructor creates a new scatterplot with a specified common x and y domain and specified names.

Parameters:
d - the common domain of the x and y variables
n1 - the name of the x variable
n2 - the name of the y variable

ScatterPlot

public ScatterPlot(Domain d)
This special constructor creates a new scatterplot with a specified common domain and default names "x" and "y".

Parameters:
d - the common domain of the x and y variables

ScatterPlot

public ScatterPlot()
This default constructor creates a new scatterplot with common domain [0, 1] and default names "x" and "y"

Method Detail

setDomains

public void setDomains(Domain d1,
                       Domain d2)
This method sets the domains.

Parameters:
d1 - the domain of the x variable
d2 - the domain of the y variable

setDomain

public void setDomain(Domain d)
This method sets the common domain for x and y.

Parameters:
d - the common domain of the x and y variables

setXDomain

public void setXDomain(Domain d)
This method sets the domain of the x variable.

Parameters:
d - the domain of the x variable.

getXDomain

public Domain getXDomain()
This method returns the domain of the x variable.

Returns:
the domain of the x variable

setYDomain

public void setYDomain(Domain d)
This method sets the domain of the y variable.

Parameters:
d - the domain of the y variable

getYDomain

public Domain getYDomain()
This method returns the domain of the y variable.

Returns:
the domain of the y variable

setNames

public void setNames(java.lang.String n1,
                     java.lang.String n2)
This method sets the names of the varaibles.

Parameters:
n1 - the name of the x variable
n2 - the name of the y variable

setXName

public void setXName(java.lang.String n)
This method sets the name of the x variable.

Parameters:
n - the name of the x variable

getXName

public java.lang.String getXName()
This method returns the name of the x variable.

Returns:
the name of the x variable

setYName

public void setYName(java.lang.String n)
This method sets the name of the y variable

Parameters:
n - the name of the y variable

getYName

public java.lang.String getYName()
This method returns the name of the y variable.

Returns:
the name of the y variable

paintComponent

public void paintComponent(java.awt.Graphics g)
This method paints the scatterplots, including the x and y axes and the boundary box. The data points are plotted in red.

Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
g - the graphics context

addPoint

public void addPoint(double x,
                     double y,
                     java.awt.Color c)
This method adds a specified data point of a specified color to the dataset.

Parameters:
x - the x coordinate of the point
y - the y coordiante of the point

addPoint

public void addPoint(double x,
                     double y)
This method adds a specified data point of default color red to the dataset.

Parameters:
x - the x coordinate of the point
y - the y coordiante of the point

addPoint

public void addPoint(java.awt.Color c)
This method adds a random data point of a specified color to the dataset. The x and y coordiantes are uniformly distributed on their respective domains.


addPoint

public void addPoint()
This method adds a random data point of default color red to the dataset. The x and y coordiantes are uniformly distributed on their respective domains.


getX

public double getX(int i)
This method gets the x-coordinate of the point with a specified index.

Parameters:
i - the index of the point
Returns:
the x coordinate of the point

getXCoordinates

public java.util.Vector getXCoordinates()
This method returns the vector of x coordinates.

Returns:
the vector of x coordinates

getY

public double getY(int i)
This method gets the y-coordinate of the point with a specified index.

Parameters:
i - the index of the point
Returns:
the y coordinate of the point

getYCoordinates

public java.util.Vector getYCoordinates()
This method returns the vector of y coordinates.

Returns:
the vector of y coordinates

getColor

public java.awt.Color getColor(int i)
This method gets the color of the point with a specified index.

Parameters:
i - the index of the point

getColors

public java.util.Vector getColors()
This method returns the vector of colors.

Returns:
the vector of colors

resetData

public void resetData()
This method resets the data by clearing the vectors of x coordinates, y coordinates, and colors.


reset

public void reset()
This method resets the scatterplot by clearing the data and redrawing.


getDataSize

public int getDataSize()
This method returns the number of data points.

Returns:
the number of points in the dataset

setXAxisColor

public void setXAxisColor(java.awt.Color c)
This method sets the x-axis color.

Parameters:
c - the x-axis color

getXAxisColor

public java.awt.Color getXAxisColor()
This method returns the x-axix color.

Returns:
x-axis color

setYAxisColor

public void setYAxisColor(java.awt.Color c)
This method sets the y-axis color.

Parameters:
c - the y-axis color

getYAxisColor

public java.awt.Color getYAxisColor()
This method returns the y-axis color.

Returns:
y-axis color

setBoxColor

public void setBoxColor(java.awt.Color c)
This method sets the box color.

Parameters:
c - the box color

getBoxColor

public java.awt.Color getBoxColor()
This method returns the box color.

Returns:
box color

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
This method handles the mouse move event. The coordinates of the mouse (in scale units) displayed in the tool tip.

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Parameters:
e - the mouse event

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent event)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener