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.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
-
Field Summary
Modifier and TypeFieldDescriptionstatic final Color[]
default colours for classesstatic final double
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
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
ConstructorDescriptionBoundaryPanel
(int panelWidth, int panelHeight) Creates a newBoundaryPanel
instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addActionListener
(ActionListener newListener) Register a listener to be notified when plotting completesvoid
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
Set 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 classesdouble
Get the base used for computing the number of samples to obtain from each generatordouble
Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).double
Gets the maximum x-coordinate bound, in training-instance units (not mouse coordinates).double
Gets the minimum x-coordinate bound, in training-instance units (not mouse coordinates).double
Gets the minimum y-coordinate bound, in training-instance units (not mouse coordinates).int
Get the number of points to sample from a region (fixed dimensions).boolean
Returns true if training data is to be superimposedstatic void
Main method for testing this classvoid
Render the training points on-screen.void
removeActionListener
(ActionListener removeListener) Remove a listenervoid
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
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
Starts the plotting thread.void
Stop the plotting threadMethods 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 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 newBoundaryPanel
instance.- 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
- 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
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
- 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
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
Adds a mouse listener.- Overrides:
addMouseListener
in 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
-