com.rapidminer.gui.plotter
Class RadVizPlotter

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.RadVizPlotter
All Implemented Interfaces:
Plotter, Renderable, Reportable, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
GridVizPlotter

public class RadVizPlotter
extends PlotterAdapter

A Radial coordinate Visualization, hence the name RadViz. The spring paradigm for displaying high-dimensional data has been quite successful. M lines radially eminate from the center of the circle and terminate at the perimeter in special special endpoints called dimensional anchors (DA). One end of a spring is attached to each DA. The other end of each spring is attached to a data point. The spring constant K_j has the value of the j-th coordinate of the data point. The data point values are typically locally normalized. Each data point is then displayed at the position that produces a spring force sum of 0. If all m coordinates have the same value the data point lies exactly in the center of the circle independently of the actual values. If the point is a unit vector point it lies exaclty at the fixed point on the edge of the circle, where the spring for that dimension is fixed. Many points can map to the same position. This mapping represents a non-linear transformation of the data that preserves certain symmetries.

Author:
Daniel Hakenjos, 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  double[] anchorVectorX
          The vector directions of the axes of the rad viz.
protected  double[] anchorVectorY
          The vector directions of the axes of the rad viz.
protected  int colorColumn
          The column which should be used to colorize the data points.
protected  int[] columnMapping
          Maps the axes to the data table columns.
protected  DataTable dataTable
          The currently used data table.
protected  javax.swing.JList ignoreList
          The list of columns which should not be used as dimension anchors.
protected  double maxWeight
          The maximum column weight (if weights are available in data table).
protected  java.util.List<PlotterPoint> plotterPoints
          The list of all plotter points.
protected  double scale
          The scaling factor for point plotting, usually 1.
 
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
RadVizPlotter()
          Creates a new RadViz plotter.
RadVizPlotter(DataTable dataTable)
          Creates a new RadViz plotter from the given data table.
 
Method Summary
protected  void calculateAttributeVectors()
          Calculate the attribute vectors.
protected  void calculateSamplePoints()
          Calculates the sample points in the RadViz.
 boolean canHandleZooming()
          Returns false.
protected  void drawPoint(java.awt.Graphics2D g, PlotterPoint point, ColorProvider colorProvider, int midX, int midY, double radius)
          Draw a data point.
 int getInitialZoomFactor()
          Returns 1.
 javax.swing.JComponent getOptionsComponent(int index)
          Returns null.
 boolean getPlotColumn(int index)
          Returns false.
 java.lang.String getPlotName()
          Returns null.
 PlotterCondition getPlotterCondition()
          Returns a BasicPlotterCondition allowing for all DataTables.
 void paintComponent(java.awt.Graphics g)
          Invokes super method and sets correct color schemes.
protected  void paintPlotter(java.awt.Graphics graphics)
           
 void setDataTable(DataTable dataTable)
          Does nothing.
 void setPlotColumn(int index, boolean plot)
          Does nothing.
 void setZooming(int zooming)
          Does nothing.
protected  boolean shouldIgnoreColumn(int column)
           
protected  boolean shouldIgnoreColumn(java.lang.String column)
           
 
Methods inherited from class com.rapidminer.gui.plotter.PlotterAdapter
canHandleContinousJittering, canHandleJitter, dataTableUpdated, drawGenericNominalLegend, drawLegend, drawLegend, drawNumericalLegend, drawPoint, drawPoint, drawSimpleDateLegend, drawSimpleNumericalLegend, drawToolTip, drawWeightRectangle, finishRendering, forcePlotGeneration, getAdditionalParameterKeys, getAxis, getAxisName, getColorProvider, getIcon, getIdForPos, 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, setJitter, setKey, setLogScale, setLogScaleForPlotColumns, setMousePosInDataSpace, setParameter, setSorting, 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

plotterPoints

protected java.util.List<PlotterPoint> plotterPoints
The list of all plotter points.


dataTable

protected transient DataTable dataTable
The currently used data table.


columnMapping

protected int[] columnMapping
Maps the axes to the data table columns.


maxWeight

protected double maxWeight
The maximum column weight (if weights are available in data table).


anchorVectorX

protected double[] anchorVectorX
The vector directions of the axes of the rad viz.


anchorVectorY

protected double[] anchorVectorY
The vector directions of the axes of the rad viz.


colorColumn

protected int colorColumn
The column which should be used to colorize the data points.


ignoreList

protected javax.swing.JList ignoreList
The list of columns which should not be used as dimension anchors.


scale

protected double scale
The scaling factor for point plotting, usually 1.

Constructor Detail

RadVizPlotter

public RadVizPlotter()
Creates a new RadViz plotter.


RadVizPlotter

public RadVizPlotter(DataTable dataTable)
Creates a new RadViz plotter from the given data table.

Method Detail

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

setDataTable

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

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

setPlotColumn

public void setPlotColumn(int index,
                          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 index)
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

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

canHandleZooming

public boolean canHandleZooming()
Description copied from class: PlotterAdapter
Returns false. Subclasses should overwrite this method if they want to allow zooming. Subclasses overriding this method should also override PlotterAdapter.setZooming(int).

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

setZooming

public void setZooming(int zooming)
Description copied from class: PlotterAdapter
Does nothing. Subclasses should overwrite this method if they want to allow zooming. Subclasses overriding this method should also override PlotterAdapter.canHandleZooming().

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

getInitialZoomFactor

public int getInitialZoomFactor()
Description copied from class: PlotterAdapter
Returns 1. Subclasses might want to deliver another initial zoom factor between 1 and 100.

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

shouldIgnoreColumn

protected boolean shouldIgnoreColumn(int column)

shouldIgnoreColumn

protected boolean shouldIgnoreColumn(java.lang.String column)

calculateSamplePoints

protected void calculateSamplePoints()
Calculates the sample points in the RadViz.


calculateAttributeVectors

protected void calculateAttributeVectors()
Calculate the attribute vectors.


paintComponent

public void paintComponent(java.awt.Graphics g)
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

paintPlotter

protected void paintPlotter(java.awt.Graphics graphics)

drawPoint

protected void drawPoint(java.awt.Graphics2D g,
                         PlotterPoint point,
                         ColorProvider colorProvider,
                         int midX,
                         int midY,
                         double radius)
Draw a data point.



Copyright © 2001-2009 by Rapid-I