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:
ImageObserver,MenuContainer,Serializable,Accessible
- Direct Known Subclasses:
BoundaryPanelDistributed
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: 12565 $
- Author:
- Mark Hall
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Color[]default colours for classesstatic final doubleThe 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_WINDOWFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionBoundaryPanel(int panelWidth, int panelHeight) Creates a newBoundaryPanelinstance. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddActionListener(ActionListener newListener) Register a listener to be notified when plotting completesvoidAdds 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.voidSet up the bounds of our graphic based by finding the smallest reasonable area in the instance space to surround our data points.Get the current vector of Color objects used for the classesdoubleGet the base used for computing the number of samples to obtain from each generatordoubleGets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).doubleGets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).doubleGets the minimum x-coordinate bound, in training-instance units (not mouse coordinates).doubleGets the minimum y-coordinate bound, in training-instance units (not mouse coordinates).intGet the number of points to sample from a region (fixed dimensions).booleanReturns true if training data is to be superimposedstatic voidMain method for testing this classvoidRender the training points on-screen.voidremoveActionListener(ActionListener removeListener) Remove a listenervoidDeletes 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.voidSet 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 threadvoidStarts the plotting thread.voidStop the plotting threadMethods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUIMethods 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, updateMethods 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, validateMethods 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 Details
-
DEFAULT_COLORS
default colours for classes -
REMOVE_POINT_RADIUS
public static final double REMOVE_POINT_RADIUSThe distance we can click away from a point in the GUI and still remove it.- See Also:
-
-
Constructor Details
-
BoundaryPanel
public BoundaryPanel(int panelWidth, int panelHeight) Creates a newBoundaryPanelinstance.- Parameters:
panelWidth- the width in pixels of the panelpanelHeight- the height in pixels of the panel
-
-
Method Details
-
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
Start the plotting thread- Throws:
Exception- if an error occurs
-
plotTrainingData
public void plotTrainingData()Render the training points on-screen. -
setTrainingData
Set the training data to use- Parameters:
trainingData- the training data- Throws:
Exception- if an error occurs
-
addTrainingInstance
Adds a training instance to the visualization dataset. -
addActionListener
Register a listener to be notified when plotting completes- Parameters:
newListener- the listener to add
-
removeActionListener
Remove a listener- Parameters:
removeListener- the listener to remove
-
setClassifier
Set the classifier to use.- Parameters:
classifier- the classifier to use
-
setDataGenerator
Set the data generator to use for generating new instances- Parameters:
dataGenerator- the data generator to use
-
setXAttribute
Set the x attribute index- Parameters:
xatt- index of the attribute to use on the x axis- Throws:
Exception- if an error occurs
-
setYAttribute
Set the y attribute index- Parameters:
yatt- index of the attribute to use on the y axis- Throws:
Exception- if an error occurs
-
setColors
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
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
Adds a mouse listener.- Overrides:
addMouseListenerin classComponent
-
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
Main method for testing this class- Parameters:
args- aString[]value
-