## 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