Package weka.gui.boundaryvisualizer
Class BoundaryPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- weka.gui.boundaryvisualizer.BoundaryPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
- Direct Known Subclasses:
BoundaryPanelDistributed
public class BoundaryPanel extends javax.swing.JPanel
BoundaryPanel. A class to handle the plotting operations associated with generating a 2D picture of a classifier's decision boundaries.- Since:
- 1.0
- Version:
- $Revision: 7883 $
- Author:
- Mark Hall
- See Also:
JPanel
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.awt.Color[]
DEFAULT_COLORS
default colours for classesstatic double
REMOVE_POINT_RADIUS
The distance we can click away from a point in the GUI and still remove it.-
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description BoundaryPanel(int panelWidth, int panelHeight)
Creates a newBoundaryPanel
instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addActionListener(java.awt.event.ActionListener newListener)
Register a listener to be notified when plotting completesvoid
addMouseListener(java.awt.event.MouseListener l)
Adds a mouse listener.void
addTrainingInstance(Instance instance)
Adds a training instance to the visualization dataset.void
addTrainingInstanceFromMouseLocation(int mouseX, int mouseY, int classAttIndex, double classValue)
Adds a training instance to our dataset, based on the coordinates of the mouse on the panel.void
computeMinMaxAtts()
Set up the bounds of our graphic based by finding the smallest reasonable area in the instance space to surround our data points.FastVector
getColors()
Get the current vector of Color objects used for the classesdouble
getGeneratorSamplesBase()
Get the base used for computing the number of samples to obtain from each generatordouble
getMaxXBound()
Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).double
getMaxYBound()
Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).double
getMinXBound()
Gets the minimum x-coordinate bound, in training-instance units (not mouse coordinates).double
getMinYBound()
Gets the minimum y-coordinate bound, in training-instance units (not mouse coordinates).int
getNumSamplesPerRegion()
Get the number of points to sample from a region (fixed dimensions).boolean
getPlotTrainingData()
Returns true if training data is to be superimposedstatic void
main(java.lang.String[] args)
Main method for testing this classvoid
plotTrainingData()
Render the training points on-screen.void
removeActionListener(java.awt.event.ActionListener removeListener)
Remove a listenervoid
removeAllInstances()
Deletes all training instances from our dataset.void
removeTrainingInstanceFromMouseLocation(int mouseX, int mouseY)
Removes a single training instance from our dataset, if there is one that is close enough to the specified mouse location.void
replot()
Quickly replot the display using cached probability estimatesvoid
setClassifier(Classifier classifier)
Set the classifier to use.void
setColors(FastVector colors)
Set a vector of Color objects for the classesvoid
setDataGenerator(DataGenerator dataGenerator)
Set the data generator to use for generating new instancesvoid
setGeneratorSamplesBase(double ksb)
Set the base for computing the number of samples to obtain from each generator.void
setNumSamplesPerRegion(int num)
Set the number of points to uniformly sample from a region (fixed dimensions).void
setPlotTrainingData(boolean pg)
Set whether to superimpose the training data plotvoid
setTrainingData(Instances trainingData)
Set the training data to usevoid
setXAttribute(int xatt)
Set the x attribute indexvoid
setYAttribute(int yatt)
Set the y attribute indexvoid
start()
Start the plotting threadvoid
startPlotThread()
Starts the plotting thread.void
stopPlotting()
Stop the plotting thread-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
DEFAULT_COLORS
public static final java.awt.Color[] DEFAULT_COLORS
default colours for classes
-
REMOVE_POINT_RADIUS
public static final double REMOVE_POINT_RADIUS
The distance we can click away from a point in the GUI and still remove it.- See Also:
- Constant Field Values
-
-
Method Detail
-
setNumSamplesPerRegion
public void setNumSamplesPerRegion(int num)
Set the number of points to uniformly sample from a region (fixed dimensions).- Parameters:
num
- anint
value
-
getNumSamplesPerRegion
public int getNumSamplesPerRegion()
Get the number of points to sample from a region (fixed dimensions).- Returns:
- an
int
value
-
setGeneratorSamplesBase
public void setGeneratorSamplesBase(double ksb)
Set the base for computing the number of samples to obtain from each generator. number of samples = base ^ (# non fixed dimensions)- Parameters:
ksb
- adouble
value
-
getGeneratorSamplesBase
public double getGeneratorSamplesBase()
Get the base used for computing the number of samples to obtain from each generator- Returns:
- a
double
value
-
stopPlotting
public void stopPlotting()
Stop the plotting thread
-
computeMinMaxAtts
public void computeMinMaxAtts()
Set up the bounds of our graphic based by finding the smallest reasonable area in the instance space to surround our data points.
-
start
public void start() throws java.lang.Exception
Start the plotting thread- Throws:
java.lang.Exception
- if an error occurs
-
plotTrainingData
public void plotTrainingData()
Render the training points on-screen.
-
setTrainingData
public void setTrainingData(Instances trainingData) throws java.lang.Exception
Set the training data to use- Parameters:
trainingData
- the training data- Throws:
java.lang.Exception
- if an error occurs
-
addTrainingInstance
public void addTrainingInstance(Instance instance)
Adds a training instance to the visualization dataset.
-
addActionListener
public void addActionListener(java.awt.event.ActionListener newListener)
Register a listener to be notified when plotting completes- Parameters:
newListener
- the listener to add
-
removeActionListener
public void removeActionListener(java.awt.event.ActionListener removeListener)
Remove a listener- Parameters:
removeListener
- the listener to remove
-
setClassifier
public void setClassifier(Classifier classifier)
Set the classifier to use.- Parameters:
classifier
- the classifier to use
-
setDataGenerator
public void setDataGenerator(DataGenerator dataGenerator)
Set the data generator to use for generating new instances- Parameters:
dataGenerator
- the data generator to use
-
setXAttribute
public void setXAttribute(int xatt) throws java.lang.Exception
Set the x attribute index- Parameters:
xatt
- index of the attribute to use on the x axis- Throws:
java.lang.Exception
- if an error occurs
-
setYAttribute
public void setYAttribute(int yatt) throws java.lang.Exception
Set the y attribute index- Parameters:
yatt
- index of the attribute to use on the y axis- Throws:
java.lang.Exception
- if an error occurs
-
setColors
public void setColors(FastVector colors)
Set a vector of Color objects for the classes- Parameters:
colors
- aFastVector
value
-
setPlotTrainingData
public void setPlotTrainingData(boolean pg)
Set whether to superimpose the training data plot- Parameters:
pg
- aboolean
value
-
getPlotTrainingData
public boolean getPlotTrainingData()
Returns true if training data is to be superimposed- Returns:
- a
boolean
value
-
getColors
public FastVector getColors()
Get the current vector of Color objects used for the classes- Returns:
- a
FastVector
value
-
replot
public void replot()
Quickly replot the display using cached probability estimates
-
addTrainingInstanceFromMouseLocation
public void addTrainingInstanceFromMouseLocation(int mouseX, int mouseY, int classAttIndex, double classValue)
Adds a training instance to our dataset, based on the coordinates of the mouse on the panel. This method sets the x and y attributes and the class (as defined by classAttIndex), and sets all other values as Missing.- Parameters:
mouseX
- the x coordinate of the mouse, in pixels.mouseY
- the y coordinate of the mouse, in pixels.classAttIndex
- the index of the attribute that is currently selected as the class attribute.classValue
- the value to set the class to in our new point.
-
removeAllInstances
public void removeAllInstances()
Deletes all training instances from our dataset.
-
removeTrainingInstanceFromMouseLocation
public void removeTrainingInstanceFromMouseLocation(int mouseX, int mouseY)
Removes a single training instance from our dataset, if there is one that is close enough to the specified mouse location.
-
startPlotThread
public void startPlotThread()
Starts the plotting thread. Will also create it if necessary.
-
addMouseListener
public void addMouseListener(java.awt.event.MouseListener l)
Adds a mouse listener.- Overrides:
addMouseListener
in classjava.awt.Component
-
getMinXBound
public double getMinXBound()
Gets the minimum x-coordinate bound, in training-instance units (not mouse coordinates).
-
getMinYBound
public double getMinYBound()
Gets the minimum y-coordinate bound, in training-instance units (not mouse coordinates).
-
getMaxXBound
public double getMaxXBound()
Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).
-
getMaxYBound
public double getMaxYBound()
Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).
-
main
public static void main(java.lang.String[] args)
Main method for testing this class- Parameters:
args
- aString[]
value
-
-