com.rapidminer.gui.plotter.som
Class SOMPlotter

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.rapidminer.gui.plotter.PlotterAdapter
                      extended by com.rapidminer.gui.plotter.som.SOMPlotter
All Implemented Interfaces:
Plotter, Renderable, Reportable, ProgressListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
SOMModelPlotter

public class SOMPlotter
extends PlotterAdapter
implements ProgressListener

This is the main class for the SOMPlotter. It uses the KohonenNet class for generating a self-organizing map. Different properties of the resulting map may be shown as background while the examples are shown as points. There are different styled visualizations of the properties.

Author:
Sebastian Land, Ingo Mierswa
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.rapidminer.gui.plotter.PlotterAdapter
PlotterAdapter.EllipsoidPointStyle, PlotterAdapter.LineColorIcon, PlotterAdapter.LineStyle, PlotterAdapter.LineStyleIcon, PlotterAdapter.PointStyle, PlotterAdapter.RectanglePointStyle, PlotterAdapter.StarPointStyle, PlotterAdapter.TriangularPointStyle, PlotterAdapter.TurnedTriangularPointStyle
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  int colorColumn
           
protected  DataTable dataTable
           
protected  int[] dimensions
           
protected  java.awt.image.BufferedImage image
           
protected static int IMAGE_HEIGHT
           
protected static int IMAGE_WIDTH
           
static int MATRIX_P
           
static int MATRIX_U
           
static int MATRIX_U_STAR
           
protected  KohonenNet net
           
protected  boolean show
           
 
Fields inherited from class com.rapidminer.gui.plotter.PlotterAdapter
ELLIPSOID_POINT_STYLE, GRID_COLOR, KNOWN_POINT_STYLES, LABEL_FONT, LABEL_FONT_BOLD, LINE_COLORS, LINE_STROKES, LINE_STYLE_ICONS, LINE_STYLES, MARGIN, POINT_STYLES, POINTSIZE, RECTANGLE_POINT_STYLE, STAR_POINT_STYLE, TOOLTIP_COLOR, TRIANGUALAR_POINT_STYLE, TURNED_TRIANGUALAR_POINT_STYLE, WEIGHT_BORDER_WIDTH
 
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 com.rapidminer.gui.plotter.Plotter
MULTIPLE_SELECTION, NO_SELECTION, SINGLE_SELECTION
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SOMPlotter()
           
 
Method Summary
 boolean canHandleJitter()
          Returns true.
protected  void createMatrices()
           
protected  void drawPoints(java.awt.Graphics2D g)
           
protected  void drawToolTip(java.awt.Graphics2D g)
           
 void forcePlotGeneration()
          This default implementation does nothing.
 java.lang.String getIdForPos(int x, int y)
          Returns null.
 javax.swing.JComponent getOptionsComponent(int index)
          Returns null.
 boolean getPlotColumn(int dimension)
          Returns false.
 java.lang.String getPlotName()
          Returns null.
 PlotterCondition getPlotterCondition()
          Returns a BasicPlotterCondition allowing for all DataTables.
protected  void interpolateRect(java.awt.image.BufferedImage image, int posX, int posY, double width, double height, double[][] matrix, int matrixX, int matrixY, double colorScale, SOMMatrixColorizer colorizer)
           
 void paintComponent(java.awt.Graphics graphics)
          Invokes super method and sets correct color schemes.
 void paintSom(java.awt.Graphics graphics)
           
 void prepareSOM(DataTable dataTable, double adaptationRadius, int trainRounds, boolean threadMode)
           
 void progressFinished()
           
protected  java.lang.Object readResolve()
           
protected  void recalculateBackgroundImage()
           
 void setColoredPoints(boolean coloredPoints)
           
 void setDataTable(DataTable dataTable)
          Does nothing.
 void setJitter(int jitter)
          Sets the level of jitter and initiates a repaint.
 void setMatrixType(int matrixType)
           
 void setMousePosInDataSpace(int x, int y)
          Sets the mouse position in the shown data space.
 void setPlotColumn(int column, boolean plot)
          Does nothing.
 void setProgress(int value)
           
 void startCalculation(boolean threadMode)
           
 
Methods inherited from class com.rapidminer.gui.plotter.PlotterAdapter
canHandleContinousJittering, canHandleZooming, dataTableUpdated, drawGenericNominalLegend, drawLegend, drawLegend, drawNumericalLegend, drawPoint, drawPoint, drawSimpleDateLegend, drawSimpleNumericalLegend, drawToolTip, drawWeightRectangle, finishRendering, getAdditionalParameterKeys, getAxis, getAxisName, getColorProvider, getIcon, getInitialZoomFactor, getMaxWeight, getNumberOfAxes, getNumberOfPlots, getNumericalTicSize, getParameterTypes, getPlotter, getPlotterName, getPointStyle, getPositionInDataSpace, getPreferredSize, getRenderHeight, getRenderWidth, getTicSize, getValuePlotSelectionType, getWeightColor, hasOptionsDialog, hasSaveImageButton, isProvidingCoordinates, isSaveable, isSupportingAbsoluteValues, isSupportingLogScale, isSupportingLogScaleForPlotColumns, isSupportingSorting, prepareRendering, render, save, setAbsolute, setAdditionalParameter, setAxis, setDragBounds, setDrawRange, setKey, setLogScale, setLogScaleForPlotColumns, setParameter, setSorting, setZooming, showOptionsDialog, stopUpdates
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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
 
Methods inherited from interface com.rapidminer.gui.plotter.Plotter
addMouseListener, addMouseMotionListener
 

Field Detail

MATRIX_U

public static final int MATRIX_U
See Also:
Constant Field Values

MATRIX_P

public static final int MATRIX_P
See Also:
Constant Field Values

MATRIX_U_STAR

public static final int MATRIX_U_STAR
See Also:
Constant Field Values

IMAGE_WIDTH

protected static final int IMAGE_WIDTH
See Also:
Constant Field Values

IMAGE_HEIGHT

protected static final int IMAGE_HEIGHT
See Also:
Constant Field Values

dimensions

protected int[] dimensions

dataTable

protected transient DataTable dataTable

show

protected boolean show

colorColumn

protected int colorColumn

net

protected transient KohonenNet net

image

protected transient java.awt.image.BufferedImage image
Constructor Detail

SOMPlotter

public SOMPlotter()
Method Detail

forcePlotGeneration

public void forcePlotGeneration()
Description copied from class: PlotterAdapter
This default implementation does nothing. Subclasses might implement this method to enforce plotter generation for reporting / file writing.

Specified by:
forcePlotGeneration in interface Plotter
Overrides:
forcePlotGeneration in class PlotterAdapter

readResolve

protected java.lang.Object readResolve()

setColoredPoints

public void setColoredPoints(boolean coloredPoints)

setMatrixType

public void setMatrixType(int matrixType)

startCalculation

public void startCalculation(boolean threadMode)

getPlotterCondition

public PlotterCondition getPlotterCondition()
Description copied from class: PlotterAdapter
Returns a BasicPlotterCondition allowing for all DataTables. Subclasses should override this method in order to indicate that they might not be able to handle certain data tables.

Specified by:
getPlotterCondition in interface Plotter
Overrides:
getPlotterCondition in class PlotterAdapter

paintComponent

public void paintComponent(java.awt.Graphics graphics)
Description copied from class: PlotterAdapter
Invokes super method and sets correct color schemes. Should be overwritten by children, but invokation of this super method must still be performed in order to get correct color schemes.

Overrides:
paintComponent in class PlotterAdapter

paintSom

public void paintSom(java.awt.Graphics graphics)

drawPoints

protected void drawPoints(java.awt.Graphics2D g)

setDataTable

public void setDataTable(DataTable dataTable)
Description copied from class: PlotterAdapter
Does nothing.

Specified by:
setDataTable in interface Plotter
Overrides:
setDataTable in class PlotterAdapter

canHandleJitter

public boolean canHandleJitter()
Returns true.

Specified by:
canHandleJitter in interface Plotter
Overrides:
canHandleJitter in class PlotterAdapter

setJitter

public void setJitter(int jitter)
Sets the level of jitter and initiates a repaint.

Specified by:
setJitter in interface Plotter
Overrides:
setJitter in class PlotterAdapter

prepareSOM

public void prepareSOM(DataTable dataTable,
                       double adaptationRadius,
                       int trainRounds,
                       boolean threadMode)

createMatrices

protected void createMatrices()

recalculateBackgroundImage

protected void recalculateBackgroundImage()

interpolateRect

protected void interpolateRect(java.awt.image.BufferedImage image,
                               int posX,
                               int posY,
                               double width,
                               double height,
                               double[][] matrix,
                               int matrixX,
                               int matrixY,
                               double colorScale,
                               SOMMatrixColorizer colorizer)

getOptionsComponent

public javax.swing.JComponent getOptionsComponent(int index)
Description copied from class: PlotterAdapter
Returns null. Subclasses might override this method in order to provide additional option components.

Specified by:
getOptionsComponent in interface Plotter
Overrides:
getOptionsComponent in class PlotterAdapter

setPlotColumn

public void setPlotColumn(int column,
                          boolean plot)
Description copied from class: PlotterAdapter
Does nothing. Subclasses should override this method if they want to allow plot column selection. In this case, the method PlotterAdapter.getPlotColumn(int) should also be overriden.

Specified by:
setPlotColumn in interface Plotter
Overrides:
setPlotColumn in class PlotterAdapter

getPlotColumn

public boolean getPlotColumn(int dimension)
Description copied from class: PlotterAdapter
Returns false. Subclasses should override this method and return true for the columns which should be plotted.

Specified by:
getPlotColumn in interface Plotter
Overrides:
getPlotColumn in class PlotterAdapter

getPlotName

public java.lang.String getPlotName()
Description copied from class: PlotterAdapter
Returns null. Subclasses might return another name more fitting the plot selection box or list.

Specified by:
getPlotName in interface Plotter
Overrides:
getPlotName in class PlotterAdapter

setProgress

public void setProgress(int value)
Specified by:
setProgress in interface ProgressListener

progressFinished

public void progressFinished()
Specified by:
progressFinished in interface ProgressListener

getIdForPos

public java.lang.String getIdForPos(int x,
                                    int y)
Description copied from class: PlotterAdapter
Returns null. Subclasses which are able to derive a point from a mouse position should return a proper Id which can be used for object visualizers.

Specified by:
getIdForPos in interface Plotter
Overrides:
getIdForPos in class PlotterAdapter

setMousePosInDataSpace

public void setMousePosInDataSpace(int x,
                                   int y)
Sets the mouse position in the shown data space.

Specified by:
setMousePosInDataSpace in interface Plotter
Overrides:
setMousePosInDataSpace in class PlotterAdapter

drawToolTip

protected void drawToolTip(java.awt.Graphics2D g)


Copyright © 2001-2009 by Rapid-I