milk.visualize
Class PlotPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--milk.visualize.PlotPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable

public class PlotPanel
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener

This class implements a panel that display the distributions of the selected exemplars. The distributions are derived by summing the small Gaussian on each instance within the exemplar. Details see Detterich et al's MI paper.

See Also:
Serialized Form

Field Summary
protected  weka.core.FastVector colorList
          The list of the colors used
protected  boolean isUp
          Whether the distribution curve is up or down
static int MAX_PRECISION
          precision constant
protected  double maxY
          The maximal value in Y axis
protected  Exemplars plotExemplars
          The exemplars to be plotted
protected  double stdDev
          The std.
protected  Axis x
          Indexes of the attributes to go on the x axis
 
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
PlotPanel()
          Constructor
 
Method Summary
 double convertToAttribX(double scx)
          convert a Panel x coordinate to a raw x value.
 double convertToAttribY(double scy)
          convert a Panel y coordinate to a raw y value.
 double convertToPanelX(double xval)
          Convert an raw x value to Panel x coordinate.
 double convertToPanelY(double yval)
          Convert an raw y value to Panel y coordinate.
 double getMaxY()
          Return the current max value of the attribute plotted on the y axis, i.e.
 Axis getXValue()
          Return the current max value of the attribute plotted on the x axis
 void paintComponent(java.awt.Graphics gx)
          Renders this component
 void propertyChange(java.beans.PropertyChangeEvent pce)
          The handler function when property changes are informed.
 void setColours(weka.core.FastVector cols)
          Set a list of colours to use when colouring points according to class values or cluster numbers
 void setMaxC(double maxc)
           
 void setMinC(double minc)
           
 void setPlotExemplars(Exemplars added)
          Sets the exemplars to be plotted
 void setStdDev(double sd)
           
 void setXValue(Axis anx)
          Set the index of the attribute to go on the x axis
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
 

Field Detail

MAX_PRECISION

public static int MAX_PRECISION
precision constant


plotExemplars

protected Exemplars plotExemplars
The exemplars to be plotted


colorList

protected weka.core.FastVector colorList
The list of the colors used


x

protected Axis x
Indexes of the attributes to go on the x axis


stdDev

protected double stdDev
The std. deviations used in deriving the distributions


maxY

protected double maxY
The maximal value in Y axis


isUp

protected boolean isUp
Whether the distribution curve is up or down

Constructor Detail

PlotPanel

public PlotPanel()
Constructor

Method Detail

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent pce)
The handler function when property changes are informed. there are lots of properties can be listened by this class: the exemplars to be plotted, the colors from the ClassPanel, x axis value and index, and std. dev. Only all these parameters are set can the distribution be plotted

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
pce - the property change event

setStdDev

public void setStdDev(double sd)

setColours

public void setColours(weka.core.FastVector cols)
Set a list of colours to use when colouring points according to class values or cluster numbers

Parameters:
cols - the list of colours to use

setMaxC

public void setMaxC(double maxc)

setMinC

public void setMinC(double minc)

setXValue

public void setXValue(Axis anx)
Set the index of the attribute to go on the x axis


getXValue

public Axis getXValue()
Return the current max value of the attribute plotted on the x axis

Returns:
the x value

getMaxY

public double getMaxY()
Return the current max value of the attribute plotted on the y axis, i.e. 1/[sqrt(2*PI) * std. dev.]

Returns:
the max y value

setPlotExemplars

public void setPlotExemplars(Exemplars added)
                      throws java.lang.Exception
Sets the exemplars to be plotted

Parameters:
added - the exemplars
Throws:
exception - Exception if exemplars could not be set
java.lang.Exception

convertToAttribX

public double convertToAttribX(double scx)
convert a Panel x coordinate to a raw x value.

Parameters:
scx - The Panel x coordinate
Returns:
A raw x value.

convertToAttribY

public double convertToAttribY(double scy)
convert a Panel y coordinate to a raw y value.

Parameters:
scy - The Panel y coordinate
Returns:
A raw y value.

convertToPanelX

public double convertToPanelX(double xval)
Convert an raw x value to Panel x coordinate.

Parameters:
xval - the raw x value
Returns:
an x value for plotting in the panel.

convertToPanelY

public double convertToPanelY(double yval)
Convert an raw y value to Panel y coordinate.

Parameters:
yval - the raw y value
Returns:
an y value for plotting in the panel.

paintComponent

public void paintComponent(java.awt.Graphics gx)
Renders this component

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