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.JPanelBoundaryPanel. 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_COLORSdefault colours for classesstatic doubleREMOVE_POINT_RADIUSThe 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 newBoundaryPanelinstance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddActionListener(java.awt.event.ActionListener newListener)Register a listener to be notified when plotting completesvoidaddMouseListener(java.awt.event.MouseListener l)Adds a mouse listener.voidaddTrainingInstance(Instance instance)Adds a training instance to the visualization dataset.voidaddTrainingInstanceFromMouseLocation(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.voidcomputeMinMaxAtts()Set up the bounds of our graphic based by finding the smallest reasonable area in the instance space to surround our data points.FastVectorgetColors()Get the current vector of Color objects used for the classesdoublegetGeneratorSamplesBase()Get the base used for computing the number of samples to obtain from each generatordoublegetMaxXBound()Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).doublegetMaxYBound()Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).doublegetMinXBound()Gets the minimum x-coordinate bound, in training-instance units (not mouse coordinates).doublegetMinYBound()Gets the minimum y-coordinate bound, in training-instance units (not mouse coordinates).intgetNumSamplesPerRegion()Get the number of points to sample from a region (fixed dimensions).booleangetPlotTrainingData()Returns true if training data is to be superimposedstatic voidmain(java.lang.String[] args)Main method for testing this classvoidplotTrainingData()Render the training points on-screen.voidremoveActionListener(java.awt.event.ActionListener removeListener)Remove a listenervoidremoveAllInstances()Deletes all training instances from our dataset.voidremoveTrainingInstanceFromMouseLocation(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.voidreplot()Quickly replot the display using cached probability estimatesvoidsetClassifier(Classifier classifier)Set the classifier to use.voidsetColors(FastVector colors)Set a vector of Color objects for the classesvoidsetDataGenerator(DataGenerator dataGenerator)Set the data generator to use for generating new instancesvoidsetGeneratorSamplesBase(double ksb)Set the base for computing the number of samples to obtain from each generator.voidsetNumSamplesPerRegion(int num)Set the number of points to uniformly sample from a region (fixed dimensions).voidsetPlotTrainingData(boolean pg)Set whether to superimpose the training data plotvoidsetTrainingData(Instances trainingData)Set the training data to usevoidsetXAttribute(int xatt)Set the x attribute indexvoidsetYAttribute(int yatt)Set the y attribute indexvoidstart()Start the plotting threadvoidstartPlotThread()Starts the plotting thread.voidstopPlotting()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- anintvalue
-
getNumSamplesPerRegion
public int getNumSamplesPerRegion()
Get the number of points to sample from a region (fixed dimensions).- Returns:
- an
intvalue
-
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- adoublevalue
-
getGeneratorSamplesBase
public double getGeneratorSamplesBase()
Get the base used for computing the number of samples to obtain from each generator- Returns:
- a
doublevalue
-
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.ExceptionStart 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.ExceptionSet 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.ExceptionSet 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- aFastVectorvalue
-
setPlotTrainingData
public void setPlotTrainingData(boolean pg)
Set whether to superimpose the training data plot- Parameters:
pg- abooleanvalue
-
getPlotTrainingData
public boolean getPlotTrainingData()
Returns true if training data is to be superimposed- Returns:
- a
booleanvalue
-
getColors
public FastVector getColors()
Get the current vector of Color objects used for the classes- Returns:
- a
FastVectorvalue
-
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:
addMouseListenerin 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
-
-