## org.jfree.chart.plot
Class FastScatterPlot

    java.lang.Object
      org.jfree.chart.plot.Plot
          org.jfree.chart.plot.FastScatterPlot

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, java.util.EventListener, AxisChangeListener, MarkerChangeListener, LegendItemSource, ValueAxisPlot, Zoomable, DatasetChangeListener, org.jfree.util.PublicCloneable

    public class FastScatterPlot

extends Plot
implements ValueAxisPlot, Zoomable, java.lang.Cloneable, java.io.Serializable

A fast scatter plot.

See Also:
  Serialized Form

Field Summary
`static java.awt.Paint` `DEFAULT_GRIDLINE_PAINT` The default grid line paint.
`static java.awt.Stroke` `DEFAULT_GRIDLINE_STROKE` The default grid line stroke.
`protected static java.util.ResourceBundle` `localizationResources` The resourceBundle for the localization.

Fields inherited from class org.jfree.chart.plot.Plot
`DEFAULT_BACKGROUND_ALPHA, DEFAULT_BACKGROUND_PAINT, DEFAULT_FOREGROUND_ALPHA, DEFAULT_INSETS, DEFAULT_LEGEND_ITEM_BOX, DEFAULT_LEGEND_ITEM_CIRCLE, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, MINIMUM_HEIGHT_TO_DRAW, MINIMUM_WIDTH_TO_DRAW, ZERO`

Constructor Summary
`FastScatterPlot()` Creates a new instance of `FastScatterPlot` with default axes.
`FastScatterPlot(float[][] data, ValueAxis domainAxis, ValueAxis rangeAxis)` Creates a new fast scatter plot.

Method Summary
`java.lang.Object` `clone()` Returns a clone of the plot.
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)` Draws the fast scatter plot on a Java 2D graphics device (such as the screen or a printer).
`protected void` `drawDomainGridlines(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, java.util.List ticks)` Draws the gridlines for the plot, if they are visible.
`protected void` `drawRangeGridlines(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, java.util.List ticks)` Draws the gridlines for the plot, if they are visible.
`boolean` `equals(java.lang.Object obj)` Tests an object for equality with this instance.
`float[][]` `getData()` Returns the data array used by the plot.
`Range` `getDataRange(ValueAxis axis)` Returns the range of data values to be plotted along the axis, or `null` if the specified axis isn't the domain axis or the range axis for the plot.
`ValueAxis` `getDomainAxis()` Returns the domain axis for the plot.
`java.awt.Paint` `getDomainGridlinePaint()` Returns the paint for the grid lines (if any) plotted against the domain axis.
`java.awt.Stroke` `getDomainGridlineStroke()` Returns the stroke for the grid-lines (if any) plotted against the domain axis.
`PlotOrientation` `getOrientation()` Returns the orientation of the plot.
`java.awt.Paint` `getPaint()` Returns the paint used to plot data points.
`java.lang.String` `getPlotType()` Returns a short string describing the plot type.
`ValueAxis` `getRangeAxis()` Returns the range axis for the plot.
`java.awt.Paint` `getRangeGridlinePaint()` Returns the paint for the grid lines (if any) plotted against the range axis.
`java.awt.Stroke` `getRangeGridlineStroke()` Returns the stroke for the grid lines (if any) plotted against the range axis.
`boolean` `isDomainGridlinesVisible()` Returns `true` if the domain gridlines are visible, and `false`otherwise.``
`boolean` `isDomainZoomable()` Returns `true`.
`boolean` `isRangeGridlinesVisible()` Returns `true` if the range axis grid is visible, and `false`otherwise.``
`boolean` `isRangeZoomable()` Returns `true`.
`void` `render(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo info, CrosshairState crosshairState)` Draws a representation of the data within the dataArea region.
`void` `setData(float[][] data)` Sets the data array used by the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxis(ValueAxis axis)` Sets the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlinePaint(java.awt.Paint paint)` Sets the paint for the grid lines plotted against the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlineStroke(java.awt.Stroke stroke)` Sets the stroke for the grid lines plotted against the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlinesVisible(boolean visible)` Sets the flag that controls whether or not the domain grid-lines are visible.
`void` `setPaint(java.awt.Paint paint)` Sets the color for the data points and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxis(ValueAxis axis)` Sets the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeGridlinePaint(java.awt.Paint paint)` Sets the paint for the grid lines plotted against the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeGridlineStroke(java.awt.Stroke stroke)` Sets the stroke for the grid lines plotted against the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeGridlinesVisible(boolean visible)` Sets the flag that controls whether or not the range axis grid lines are visible.
`void` `zoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, java.awt.geom.Point2D source)` Zooms in on the domain axes.
`void` `zoomDomainAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source)` Multiplies the range on the domain axis by the specified factor.
`void` `zoomDomainAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source, boolean useAnchor)` Multiplies the range on the domain axis by the specified factor.
`void` `zoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, java.awt.geom.Point2D source)` Zooms in on the range axes.
`void` `zoomRangeAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source)` Multiplies the range on the range axis/axes by the specified factor.
`void` `zoomRangeAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source, boolean useAnchor)` Multiplies the range on the range axis by the specified factor.

Methods inherited from class org.jfree.chart.plot.Plot

`addChangeListener, axisChanged, datasetChanged, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getLegendItems, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent, zoom`

Methods inherited from class java.lang.Object
`finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_GRIDLINE_STROKE

    public static final java.awt.Stroke DEFAULT_GRIDLINE_STROKE

  The default grid line stroke.

### DEFAULT_GRIDLINE_PAINT

    public static final java.awt.Paint DEFAULT_GRIDLINE_PAINT

  The default grid line paint.

### localizationResources

    protected static java.util.ResourceBundle localizationResources

  The resourceBundle for the localization.

Constructor Detail

### FastScatterPlot

    public FastScatterPlot()

  Creates a new instance of `FastScatterPlot` with default axes.

### FastScatterPlot

    public FastScatterPlot(float[][] data,
                           ValueAxis domainAxis,
                           ValueAxis rangeAxis)

  Creates a new fast scatter plot.

  The data is an array of x, y values: data[0][i] = x, data[1][i] = y.

  Parameters:
    `data` - the data (`null` permitted).
    `domainAxis` - the domain (x) axis (`null` not permitted).
    `rangeAxis` - the range (y) axis (`null` not permitted).

Method Detail

### getPlotType

    public java.lang.String getPlotType()

  Returns a short string describing the plot type.

  Specified by:
    `getPlotType` in class `Plot`
  Returns:
    A short string describing the plot type.

### getData

    public float[][] getData()

  Returns the data array used by the plot.

  Returns:
    The data array (possibly `null`).
  See Also:
    `setData(float[][])`

### setData

    public void setData(float[][] data)

  Sets the data array used by the plot and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `data` - the data array (`null` permitted).
  See Also:
    `getData()`

### getOrientation

    public PlotOrientation getOrientation()

  Returns the orientation of the plot.

  Specified by:
    `getOrientation` in interface `Zoomable`
  Returns:
    The orientation (always `PlotOrientation.VERTICAL`).

### getDomainAxis

    public ValueAxis getDomainAxis()

  Returns the domain axis for the plot.

  Returns:
    The domain axis (never `null`).
  See Also:
    `setDomainAxis(ValueAxis)`

### setDomainAxis

    public void setDomainAxis(ValueAxis axis)

  Sets the domain axis and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `axis` - the axis (`null` not permitted).
  Since:
    1.0.3
  See Also:
    `getDomainAxis()`

### getRangeAxis

    public ValueAxis getRangeAxis()

  Returns the range axis for the plot.

  Returns:
    The range axis (never `null`).
  See Also:
    `setRangeAxis(ValueAxis)`

### setRangeAxis

    public void setRangeAxis(ValueAxis axis)

  Sets the range axis and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `axis` - the axis (`null` not permitted).
  Since:
    1.0.3
  See Also:
    `getRangeAxis()`

### getPaint

    public java.awt.Paint getPaint()

  Returns the paint used to plot data points. The default is `Color.red`.

  Returns:
    The paint.
  See Also:
    `setPaint(Paint)`

### setPaint

    public void setPaint(java.awt.Paint paint)

  Sets the color for the data points and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getPaint()`

### isDomainGridlinesVisible

    public boolean isDomainGridlinesVisible()

  Returns `true` if the domain gridlines are visible, and `false`otherwise.

  ``
  Returns:
    `true` or `false`.
  See Also:
    `setDomainGridlinesVisible(boolean)`, `setDomainGridlinePaint(Paint)`

### setDomainGridlinesVisible

    public void setDomainGridlinesVisible(boolean visible)

  Sets the flag that controls whether or not the domain grid-lines are visible. If the flag value is changed, a `PlotChangeEvent` is sent to all registered listeners.

  Parameters:
    `visible` - the new value of the flag.
  See Also:
    `getDomainGridlinePaint()`

### getDomainGridlineStroke

    public java.awt.Stroke getDomainGridlineStroke()

  Returns the stroke for the grid-lines (if any) plotted against the domain axis.

  Returns:
    The stroke (never `null`).
  See Also:
    `setDomainGridlineStroke(Stroke)`

### setDomainGridlineStroke

    public void setDomainGridlineStroke(java.awt.Stroke stroke)

  Sets the stroke for the grid lines plotted against the domain axis and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` not permitted).
  See Also:
    `getDomainGridlineStroke()`

### getDomainGridlinePaint

    public java.awt.Paint getDomainGridlinePaint()

  Returns the paint for the grid lines (if any) plotted against the domain axis.

  Returns:
    The paint (never `null`).
  See Also:
    `setDomainGridlinePaint(Paint)`

### setDomainGridlinePaint

    public void setDomainGridlinePaint(java.awt.Paint paint)

  Sets the paint for the grid lines plotted against the domain axis and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getDomainGridlinePaint()`

### isRangeGridlinesVisible

    public boolean isRangeGridlinesVisible()

  Returns `true` if the range axis grid is visible, and `false`otherwise.

  ``
  Returns:
    `true` or `false`.
  See Also:
    `setRangeGridlinesVisible(boolean)`

### setRangeGridlinesVisible

    public void setRangeGridlinesVisible(boolean visible)

  Sets the flag that controls whether or not the range axis grid lines are visible. If the flag value is changed, a `PlotChangeEvent` is sent to all registered listeners.

  Parameters:
    `visible` - the new value of the flag.
  See Also:
    `isRangeGridlinesVisible()`

### getRangeGridlineStroke

    public java.awt.Stroke getRangeGridlineStroke()

  Returns the stroke for the grid lines (if any) plotted against the range axis.

  Returns:
    The stroke (never `null`).
  See Also:
    `setRangeGridlineStroke(Stroke)`

### setRangeGridlineStroke

    public void setRangeGridlineStroke(java.awt.Stroke stroke)

  Sets the stroke for the grid lines plotted against the range axis and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the stroke (`null` permitted).
  See Also:
    `getRangeGridlineStroke()`

### getRangeGridlinePaint

    public java.awt.Paint getRangeGridlinePaint()

  Returns the paint for the grid lines (if any) plotted against the range axis.

  Returns:
    The paint (never `null`).
  See Also:
    `setRangeGridlinePaint(Paint)`

### setRangeGridlinePaint

    public void setRangeGridlinePaint(java.awt.Paint paint)

  Sets the paint for the grid lines plotted against the range axis and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getRangeGridlinePaint()`

### draw

    public void draw(java.awt.Graphics2D g2,
                     java.awt.geom.Rectangle2D area,
                     java.awt.geom.Point2D anchor,
                     PlotState parentState,
                     PlotRenderingInfo info)

  Draws the fast scatter plot on a Java 2D graphics device (such as the screen or a printer).

  Specified by:
    `draw` in class `Plot`
  Parameters:
    `g2` - the graphics device.
    `area` - the area within which the plot (including axis labels) should be drawn.
    `anchor` - the anchor point (`null` permitted).
    `parentState` - the state from the parent plot (ignored).
    `info` - collects chart drawing information (`null` permitted).

### render

    public void render(java.awt.Graphics2D g2,
                       java.awt.geom.Rectangle2D dataArea,
                       PlotRenderingInfo info,
                       CrosshairState crosshairState)

  Draws a representation of the data within the dataArea region. The `info` and `crosshairState` arguments may be `null`.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the region in which the data is to be drawn.
    `info` - an optional object for collection dimension information.
    `crosshairState` - collects crosshair information (`null` permitted).

### drawDomainGridlines

    protected void drawDomainGridlines(java.awt.Graphics2D g2,
                                       java.awt.geom.Rectangle2D dataArea,
                                       java.util.List ticks)

  Draws the gridlines for the plot, if they are visible.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `ticks` - the ticks.

### drawRangeGridlines

    protected void drawRangeGridlines(java.awt.Graphics2D g2,
                                      java.awt.geom.Rectangle2D dataArea,
                                      java.util.List ticks)

  Draws the gridlines for the plot, if they are visible.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `ticks` - the ticks.

### getDataRange

    public Range getDataRange(ValueAxis axis)

  Returns the range of data values to be plotted along the axis, or `null` if the specified axis isn't the domain axis or the range axis for the plot.

  Specified by:
    `getDataRange` in interface `ValueAxisPlot`
  Parameters:
    `axis` - the axis (`null` permitted).
  Returns:
    The range (possibly `null`).

### zoomDomainAxes

    public void zoomDomainAxes(double factor,
                               PlotRenderingInfo info,
                               java.awt.geom.Point2D source)

  Multiplies the range on the domain axis by the specified factor.

  Specified by:
    `zoomDomainAxes` in interface `Zoomable`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info.
    `source` - the source point.
  See Also:
    `Zoomable.zoomRangeAxes(double, PlotRenderingInfo, Point2D)`

### zoomDomainAxes

    public void zoomDomainAxes(double factor,
                               PlotRenderingInfo info,
                               java.awt.geom.Point2D source,
                               boolean useAnchor)

  Multiplies the range on the domain axis by the specified factor.

  Specified by:
    `zoomDomainAxes` in interface `Zoomable`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info.
    `source` - the source point (in Java2D space).
    `useAnchor` - use source point as zoom anchor?
  Since:
    1.0.7
  See Also:
    `zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)`

### zoomDomainAxes

    public void zoomDomainAxes(double lowerPercent,
                               double upperPercent,
                               PlotRenderingInfo info,
                               java.awt.geom.Point2D source)

  Zooms in on the domain axes.

  Specified by:
    `zoomDomainAxes` in interface `Zoomable`
  Parameters:
    `lowerPercent` - the new lower bound as a percentage of the current range.
    `upperPercent` - the new upper bound as a percentage of the current range.
    `info` - the plot rendering info.
    `source` - the source point.
  See Also:
    `Zoomable.zoomRangeAxes(double, double, PlotRenderingInfo, Point2D)`

### zoomRangeAxes

    public void zoomRangeAxes(double factor,
                              PlotRenderingInfo info,
                              java.awt.geom.Point2D source)

  Multiplies the range on the range axis/axes by the specified factor.

  Specified by:
    `zoomRangeAxes` in interface `Zoomable`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info.
    `source` - the source point.
  See Also:
    `Zoomable.zoomDomainAxes(double, PlotRenderingInfo, Point2D)`

### zoomRangeAxes

    public void zoomRangeAxes(double factor,
                              PlotRenderingInfo info,
                              java.awt.geom.Point2D source,
                              boolean useAnchor)

  Multiplies the range on the range axis by the specified factor.

  Specified by:
    `zoomRangeAxes` in interface `Zoomable`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info.
    `source` - the source point (in Java2D space).
    `useAnchor` - use source point as zoom anchor?
  Since:
    1.0.7
  See Also:
    `zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)`

### zoomRangeAxes

    public void zoomRangeAxes(double lowerPercent,
                              double upperPercent,
                              PlotRenderingInfo info,
                              java.awt.geom.Point2D source)

  Zooms in on the range axes.

  Specified by:
    `zoomRangeAxes` in interface `Zoomable`
  Parameters:
    `lowerPercent` - the new lower bound as a percentage of the current range.
    `upperPercent` - the new upper bound as a percentage of the current range.
    `info` - the plot rendering info.
    `source` - the source point.
  See Also:
    `Zoomable.zoomDomainAxes(double, double, PlotRenderingInfo, Point2D)`

### isDomainZoomable

    public boolean isDomainZoomable()

  Returns `true`.

  Specified by:
    `isDomainZoomable` in interface `Zoomable`
  Returns:
    A boolean.
  See Also:
    `Zoomable.isRangeZoomable()`

### isRangeZoomable

    public boolean isRangeZoomable()

  Returns `true`.

  Specified by:
    `isRangeZoomable` in interface `Zoomable`
  Returns:
    A boolean.
  See Also:
    `Zoomable.isDomainZoomable()`

### equals

    public boolean equals(java.lang.Object obj)

  Tests an object for equality with this instance.

  Overrides:
    `equals` in class `Plot`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    A boolean.

### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

  Returns a clone of the plot.

  Specified by:
    `clone` in interface `org.jfree.util.PublicCloneable`
  Overrides:
    `clone` in class `Plot`
  Returns:
    A clone.
  Throws:
    `java.lang.CloneNotSupportedException` - if some component of the plot does not support cloning.