com.rapidminer.gui.plotter
Class ScatterPlotter

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

public class ScatterPlotter
extends PlotterAdapter

The color plotter can display up to two dimensions and uses color schemes to indicate the third dimension.

Author:
Ingo Mierswa, Simon Fischer
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
static int LINES
           
static int LINES_AND_POINTS
           
protected  java.util.List<com.rapidminer.gui.plotter.Plot> plots
           
static java.lang.String[] POINT_TYPES
           
static int POINTS
           
static int X_AXIS
           
static int Y_AXIS
           
 
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
ScatterPlotter()
           
ScatterPlotter(DataTable dataTable)
           
 
Method Summary
 boolean canHandleJitter()
          Returns true.
protected  void clearPlotColumns()
          Disables all plotting but does not invoke repaint.
protected  void drawGrid(java.awt.Graphics2D g, double dx, double dy, double sx, double sy)
           
protected  void drawPoints(java.awt.Graphics2D g, double dx, double dy, double sx, double sy)
           
 int getAxis(int index)
          Returns -1.
 java.lang.String getAxisName(int index)
          Returns null.
 boolean getDraw2DLines()
           
 boolean getDrawLegend()
           
 java.lang.String getIdForPos(int x, int y)
          Returns null.
 int getNumberOfAxes()
          Returns 0.
 javax.swing.JComponent getOptionsComponent(int index)
          Returns null.
 boolean getPlotColumn(int index)
          Returns false.
 java.awt.geom.Point2D getPositionInDataSpace(java.awt.Point point)
          Returns null.
 int getValuePlotSelectionType()
          Returns Plotter.SINGLE_SELECTION.
 boolean isProvidingCoordinates()
          Returns false.
 boolean isSaveable()
          Returns false.
 boolean isSupportingLogScale(int axis)
          Returns true if a log scale for this column is supported.
 void paint2DPlots(java.awt.Graphics2D g)
           
 void paintComponent(java.awt.Graphics graphics)
          Invokes super method and sets correct color schemes.
 void save()
          Does nothing.
 void setAxis(int index, int dimension)
          Does nothing.
 void setDataTable(DataTable dataTable)
          Does nothing.
 void setDragBounds(int dragX, int dragY, int dragWidth, int dragHeight)
          Does nothing.
 void setDraw2DLines(boolean v)
           
 void setDrawAxes(boolean drawAxes)
           
 void setDrawLabel(boolean drawLabel)
           
 void setDrawLegend(boolean drawLegend)
           
 void setDrawRange(double drawMinX, double drawMaxX, double drawMinY, double drawMaxY)
          Sets the draw range in data space.
 void setJitter(int jitter)
          Sets the level of jitter and initiates a repaint.
 void setKey(java.lang.String key)
          Does nothing.
 void setLogScale(int axis, boolean logScale)
          Sets if the given axis should be plotted with log scale.
 void setMousePosInDataSpace(int x, int y)
          Sets the mouse position in the shown data space.
 void setPlotColumn(int index, boolean plot)
          Does nothing.
 void setPointType(int pointType)
           
 
Methods inherited from class com.rapidminer.gui.plotter.PlotterAdapter
canHandleContinousJittering, canHandleZooming, dataTableUpdated, drawGenericNominalLegend, drawLegend, drawLegend, drawNumericalLegend, drawPoint, drawPoint, drawSimpleDateLegend, drawSimpleNumericalLegend, drawToolTip, drawWeightRectangle, finishRendering, forcePlotGeneration, getAdditionalParameterKeys, getColorProvider, getIcon, getInitialZoomFactor, getMaxWeight, getNumberOfPlots, getNumericalTicSize, getParameterTypes, getPlotName, getPlotter, getPlotterCondition, getPlotterName, getPointStyle, getPreferredSize, getRenderHeight, getRenderWidth, getTicSize, getWeightColor, hasOptionsDialog, hasSaveImageButton, isSupportingAbsoluteValues, isSupportingLogScaleForPlotColumns, isSupportingSorting, prepareRendering, render, setAbsolute, setAdditionalParameter, 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

POINT_TYPES

public static final java.lang.String[] POINT_TYPES

LINES_AND_POINTS

public static final int LINES_AND_POINTS
See Also:
Constant Field Values

LINES

public static final int LINES
See Also:
Constant Field Values

POINTS

public static final int POINTS
See Also:
Constant Field Values

X_AXIS

public static final int X_AXIS
See Also:
Constant Field Values

Y_AXIS

public static final int Y_AXIS
See Also:
Constant Field Values

plots

protected java.util.List<com.rapidminer.gui.plotter.Plot> plots
Constructor Detail

ScatterPlotter

public ScatterPlotter()

ScatterPlotter

public ScatterPlotter(DataTable dataTable)
Method Detail

setDataTable

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

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

setPointType

public void setPointType(int pointType)

getAxisName

public java.lang.String getAxisName(int index)
Description copied from class: PlotterAdapter
Returns null. Subclasses overriding this method should also override PlotterAdapter.getAxis(int), PlotterAdapter.setAxis(int, int), and PlotterAdapter.getNumberOfAxes().

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

getValuePlotSelectionType

public int getValuePlotSelectionType()
Description copied from class: PlotterAdapter
Returns Plotter.SINGLE_SELECTION. Subclasses might override this method and return Plotter.NO_SELECTION or Plotter.MULTIPLE_SELECTION.

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

isSaveable

public boolean isSaveable()
Description copied from class: PlotterAdapter
Returns false. Subclasses might want to override this method to indicate that they are able to save the data into a file. In this case, the method PlotterAdapter.save() should also be overridden.

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

save

public void save()
Description copied from class: PlotterAdapter
Does nothing. Please note that subclasses which want to allow saving should also override the method PlotterAdapter.isSaveable().

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

getNumberOfAxes

public int getNumberOfAxes()
Description copied from class: PlotterAdapter
Returns 0. Subclasses overriding this method should also override PlotterAdapter.getAxisName(int), PlotterAdapter.setAxis(int, int), and PlotterAdapter.getAxis(int).

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

setAxis

public void setAxis(int index,
                    int dimension)
Description copied from class: PlotterAdapter
Does nothing. Subclasses overriding this method should also override PlotterAdapter.getAxis(int), PlotterAdapter.getAxisName(int), and PlotterAdapter.getNumberOfAxes().

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

getAxis

public int getAxis(int index)
Description copied from class: PlotterAdapter
Returns -1. Subclasses overriding this method should also override PlotterAdapter.getAxisName(int), PlotterAdapter.setAxis(int, int), and PlotterAdapter.getNumberOfAxes().

Specified by:
getAxis in interface Plotter
Overrides:
getAxis 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

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

clearPlotColumns

protected void clearPlotColumns()
Disables all plotting but does not invoke repaint.


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

setDrawLegend

public void setDrawLegend(boolean drawLegend)

getDrawLegend

public boolean getDrawLegend()

getPositionInDataSpace

public java.awt.geom.Point2D getPositionInDataSpace(java.awt.Point point)
Description copied from class: PlotterAdapter
Returns null. Subclasses which are able to calculate the position in data space from a position in screen space should return the proper position. Please note that you have to override the method PlotterAdapter.isProvidingCoordinates(), too.

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

setDrawRange

public void setDrawRange(double drawMinX,
                         double drawMaxX,
                         double drawMinY,
                         double drawMaxY)
Sets the draw range in data space. Please note that you might have to transform coordinated from mouse (plotter) space into data space before with the method getPositionInDataSpace(Point).

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

setKey

public void setKey(java.lang.String key)
Description copied from class: PlotterAdapter
Does nothing. Subclasses might override this method if they want to allow a key (legend).

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

setDrawAxes

public void setDrawAxes(boolean drawAxes)

setDrawLabel

public void setDrawLabel(boolean drawLabel)

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

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

setDragBounds

public void setDragBounds(int dragX,
                          int dragY,
                          int dragWidth,
                          int dragHeight)
Description copied from class: PlotterAdapter
Does nothing. Can be used for setting the current drag bounds in screen space.

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

drawPoints

protected void drawPoints(java.awt.Graphics2D g,
                          double dx,
                          double dy,
                          double sx,
                          double sy)

drawGrid

protected void drawGrid(java.awt.Graphics2D g,
                        double dx,
                        double dy,
                        double sx,
                        double sy)

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

paint2DPlots

public void paint2DPlots(java.awt.Graphics2D g)

setDraw2DLines

public void setDraw2DLines(boolean v)

getDraw2DLines

public boolean getDraw2DLines()

isProvidingCoordinates

public boolean isProvidingCoordinates()
Description copied from class: PlotterAdapter
Returns false. Subclasses might override this method in order to indicate that this plotter is able to deliver plot coordinates. Please note that overriding subclasses should also override PlotterAdapter.getPositionInDataSpace(Point).

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

isSupportingLogScale

public boolean isSupportingLogScale(int axis)
Returns true if a log scale for this column is supported. Returns true for the x- and y-axis.

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

setLogScale

public void setLogScale(int axis,
                        boolean logScale)
Sets if the given axis should be plotted with log scale.

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


Copyright © 2001-2009 by Rapid-I