## org.jfree.chart.plot
Class XYPlot

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

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

Direct Known Subclasses:
  CombinedDomainXYPlot, CombinedRangeXYPlot

    public class XYPlot

extends Plot
implements ValueAxisPlot, Zoomable, RendererChangeListener, java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable

A general class for plotting data in the form of (x, y) pairs. This plot can use data from any class that implements the `XYDataset` interface.

`XYPlot` makes use of an `XYItemRenderer` to draw each point on the plot. By using different renderers, various chart types can be produced.

The `ChartFactory` class contains static methods for creating pre-configured charts.

See Also:
  Serialized Form

Field Summary
`static java.awt.Paint` `DEFAULT_CROSSHAIR_PAINT` The default crosshair paint.
`static java.awt.Stroke` `DEFAULT_CROSSHAIR_STROKE` The default crosshair stroke.
`static boolean` `DEFAULT_CROSSHAIR_VISIBLE` The default crosshair visibility.
`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
`XYPlot()` Default constructor.
`XYPlot(XYDataset dataset, ValueAxis domainAxis, ValueAxis rangeAxis, XYItemRenderer renderer)` Creates a new plot.

Method Summary
`void` `addAnnotation(XYAnnotation annotation)` Adds an annotation to the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(int index, Marker marker, org.jfree.ui.Layer layer)` Adds a marker for a renderer and sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(Marker marker)` Adds a marker for the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(Marker marker, org.jfree.ui.Layer layer)` Adds a marker for the domain axis in the specified layer and sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(int index, Marker marker, org.jfree.ui.Layer layer)` Adds a marker for a renderer and sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(Marker marker)` Adds a marker for the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(Marker marker, org.jfree.ui.Layer layer)` Adds a marker for the range axis in the specified layer and sends a `PlotChangeEvent` to all registered listeners.
`protected AxisSpace` `calculateAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea)` Calculates the space required for all the axes in the plot.
`protected AxisSpace` `calculateDomainAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, AxisSpace space)` Calculates the space required for the domain axis/axes.
`protected AxisSpace` `calculateRangeAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, AxisSpace space)` Calculates the space required for the range axis/axes.
`void` `clearAnnotations()` Clears all the annotations and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearDomainAxes()` Clears the domain axes from the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearDomainMarkers()` Clears all the (foreground and background) domain markers and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearRangeAxes()` Clears the range axes from the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearRangeMarkers()` Clears all the range markers and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearRangeMarkers(int index)` Clears the (foreground and background) range markers for a particular renderer.
`java.lang.Object` `clone()` Returns a clone of the plot.
`void` `configureDomainAxes()` Configures the domain axes.
`void` `configureRangeAxes()` Configures the range axes.
`void` `datasetChanged(DatasetChangeEvent event)` Receives notification of a change to the plot's dataset.
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, PlotState parentState, PlotRenderingInfo state)` Draws the plot on a Java 2D graphics device (such as the screen or a printer).
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)` Draws the plot within the specified area on a graphics device.
`void` `drawAnnotations(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo info)` Draws the annotations for the plot.
`protected java.util.Map` `drawAxes(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo plotState)` A utility method for drawing the axes.
`void` `drawBackground(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the background for the plot.
`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` `drawDomainMarkers(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, int index, org.jfree.ui.Layer layer)` Draws the domain markers (if any) for an axis and layer.
`protected void` `drawDomainMarkers(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.Layer layer)` Draws the domain markers (if any) for the specified layer.
`void` `drawDomainTickBands(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, java.util.List ticks)` Draws the domain tick bands, if any.
`protected void` `drawHorizontalLine(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double value, java.awt.Stroke stroke, java.awt.Paint paint)` Utility method for drawing a horizontal line across the data area of the plot.
`protected void` `drawQuadrants(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the quadrants.
`protected void` `drawRangeGridlines(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, java.util.List ticks)` Draws the gridlines for the plot's primary range axis, if they are visible.
`protected void` `drawRangeMarkers(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, int index, org.jfree.ui.Layer layer)` Draws the range markers (if any) for a renderer and layer.
`protected void` `drawRangeMarkers(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.Layer layer)` Draws the range markers (if any) for the specified layer.
`void` `drawRangeTickBands(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, java.util.List ticks)` Draws the range tick bands, if any.
`protected void` `drawVerticalLine(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double value, java.awt.Stroke stroke, java.awt.Paint paint)` Utility method for drawing a vertical line on the data area of the plot.
`protected void` `drawZeroRangeBaseline(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea)` Draws the gridlines for the plot's primary range axis, if they are visible.
`boolean` `equals(java.lang.Object obj)` Tests this plot for equality with another object.
`org.jfree.ui.RectangleInsets` `getAxisOffset()` Returns the axis offset.
`Range` `getDataRange(ValueAxis axis)` Returns the range for the specified axis.
`XYDataset` `getDataset()` Returns the primary dataset for the plot.
`XYDataset` `getDataset(int index)` Returns a dataset.
`int` `getDatasetCount()` Returns the number of datasets.
`DatasetRenderingOrder` `getDatasetRenderingOrder()` Returns the dataset rendering order.
`ValueAxis` `getDomainAxis()` Returns the domain axis for the plot.
`ValueAxis` `getDomainAxis(int index)` Returns a domain axis.
`int` `getDomainAxisCount()` Returns the number of domain axes.
`org.jfree.ui.RectangleEdge` `getDomainAxisEdge()` Returns the edge for the primary domain axis (taking into account the plot's orientation.
`org.jfree.ui.RectangleEdge` `getDomainAxisEdge(int index)` Returns the edge for a domain axis.
`ValueAxis` `getDomainAxisForDataset(int index)` Returns the domain axis for a dataset.
`protected int` `getDomainAxisIndex(ValueAxis axis)` Returns the index of the given domain axis.
`AxisLocation` `getDomainAxisLocation()` Returns the location of the primary domain axis.
`AxisLocation` `getDomainAxisLocation(int index)` Returns the location for a domain axis.
`java.awt.Paint` `getDomainCrosshairPaint()` Returns the domain crosshair color.
`java.awt.Stroke` `getDomainCrosshairStroke()` Returns the `Stroke` used to draw the crosshair (if visible).
`double` `getDomainCrosshairValue()` Returns the domain crosshair value.
`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.
`java.util.Collection` `getDomainMarkers(int index, org.jfree.ui.Layer layer)` Returns a collection of domain markers for a particular renderer and layer.
`java.util.Collection` `getDomainMarkers(org.jfree.ui.Layer layer)` Returns the list of domain markers (read only) for the specified layer.
`java.awt.Paint` `getDomainTickBandPaint()` Returns the paint used for the domain tick bands.
`AxisSpace` `getFixedDomainAxisSpace()` Returns the fixed domain axis space.
`LegendItemCollection` `getFixedLegendItems()` Returns the fixed legend items, if any.
`AxisSpace` `getFixedRangeAxisSpace()` Returns the fixed range axis space.
`int` `getIndexOf(XYItemRenderer renderer)` Returns the index of the specified renderer, or `-1` if the renderer is not assigned to this plot.
`LegendItemCollection` `getLegendItems()` Returns the legend items for the plot.
`PlotOrientation` `getOrientation()` Returns the orientation of the plot.
`java.lang.String` `getPlotType()` Returns the plot type as a string.
`java.awt.geom.Point2D` `getQuadrantOrigin()` Returns the origin for the quadrants that can be displayed on the plot.
`java.awt.Paint` `getQuadrantPaint(int index)` Returns the paint used for the specified quadrant.
`ValueAxis` `getRangeAxis()` Returns the range axis for the plot.
`ValueAxis` `getRangeAxis(int index)` Returns a range axis.
`int` `getRangeAxisCount()` Returns the number of range axes.
`org.jfree.ui.RectangleEdge` `getRangeAxisEdge()` Returns the edge for the primary range axis.
`org.jfree.ui.RectangleEdge` `getRangeAxisEdge(int index)` Returns the edge for a range axis.
`ValueAxis` `getRangeAxisForDataset(int index)` Returns the range axis for a dataset.
`protected int` `getRangeAxisIndex(ValueAxis axis)` Returns the index of the given range axis.
`AxisLocation` `getRangeAxisLocation()` Returns the location of the primary range axis.
`AxisLocation` `getRangeAxisLocation(int index)` Returns the location for a range axis.
`java.awt.Paint` `getRangeCrosshairPaint()` Returns the range crosshair color.
`java.awt.Stroke` `getRangeCrosshairStroke()` Returns the Stroke used to draw the crosshair (if visible).
`double` `getRangeCrosshairValue()` Returns the range crosshair value.
`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.
`java.util.Collection` `getRangeMarkers(int index, org.jfree.ui.Layer layer)` Returns a collection of range markers for a particular renderer and layer.
`java.util.Collection` `getRangeMarkers(org.jfree.ui.Layer layer)` Returns the list of range markers (read only) for the specified layer.
`java.awt.Paint` `getRangeTickBandPaint()` Returns the paint used for the range tick bands.
`XYItemRenderer` `getRenderer()` Returns the renderer for the primary dataset.
`XYItemRenderer` `getRenderer(int index)` Returns the renderer for a dataset, or `null`.
`XYItemRenderer` `getRendererForDataset(XYDataset dataset)` Returns the renderer for the specified dataset.
`int` `getSeriesCount()` Returns the number of series in the primary dataset for this plot.
`int` `getWeight()` Returns the weight for this plot when it is used as a subplot within a combined plot.
`java.awt.Paint` `getZeroRangeBaselinePaint()` Returns the paint for the zero baseline (if any) plotted against the range axis.
`java.awt.Stroke` `getZeroRangeBaselineStroke()` Returns the stroke used for the zero baseline against the range axis.
`void` `handleClick(int x, int y, PlotRenderingInfo info)` Handles a 'click' on the plot by updating the anchor values...
`int` `indexOf(XYDataset dataset)` Returns the index of the specified dataset, or `-1` if the dataset does not belong to the plot.
`boolean` `isDomainCrosshairLockedOnData()` Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.
`boolean` `isDomainCrosshairVisible()` Returns a flag indicating whether or not the domain crosshair is visible.
`boolean` `isDomainGridlinesVisible()` Returns `true` if the domain gridlines are visible, and `false`otherwise.``
`boolean` `isDomainZoomable()` Returns `true`
`boolean` `isRangeCrosshairLockedOnData()` Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.
`boolean` `isRangeCrosshairVisible()` Returns a flag indicating whether or not the range crosshair is visible.
`boolean` `isRangeGridlinesVisible()` Returns `true` if the range axis grid is visible, and `false`otherwise.``
`boolean` `isRangeZoomable()` Returns `true`
`boolean` `isZeroRangeBaselineVisible()` Returns a flag that controls whether or not a zero baseline is displayed for the range axis.
`void` `mapDatasetToDomainAxis(int index, int axisIndex)` Maps a dataset to a particular domain axis.
`void` `mapDatasetToRangeAxis(int index, int axisIndex)` Maps a dataset to a particular range axis.
`boolean` `removeAnnotation(XYAnnotation annotation)` Removes an annotation from the plot and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `render(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, int index, PlotRenderingInfo info, CrosshairState crosshairState)` Draws a representation of the data within the dataArea region, using the current renderer.
`void` `rendererChanged(RendererChangeEvent event)` Receives notification of a renderer change event.
`void` `setAxisOffset(org.jfree.ui.RectangleInsets offset)` Sets the axis offsets (gap between the data area and the axes).
`void` `setDataset(int index, XYDataset dataset)` Sets a dataset for the plot.
`void` `setDataset(XYDataset dataset)` Sets the primary dataset for the plot, replacing the existing dataset if there is one.
`void` `setDatasetRenderingOrder(DatasetRenderingOrder order)` Sets the rendering order and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxis(int index, ValueAxis axis)` Sets a domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxis(ValueAxis axis)` Sets the domain axis for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxisLocation(AxisLocation location)` Sets the location of the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxisLocation(AxisLocation location, boolean notify)` Sets the location of the domain axis and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxisLocation(int index, AxisLocation location)` Sets the location for a domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainCrosshairLockedOnData(boolean flag)` Sets the flag indicating whether or not the domain crosshair should "lock-on" to actual data values.
`void` `setDomainCrosshairPaint(java.awt.Paint paint)` Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
`void` `setDomainCrosshairStroke(java.awt.Stroke stroke)` Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
`void` `setDomainCrosshairValue(double value)` Sets the domain crosshair value and sends a `PlotChangeEvent` to all registered listeners (provided that the domain crosshair is visible).
`void` `setDomainCrosshairValue(double value, boolean notify)` Sets the domain crosshair value and, if requested, sends a `PlotChangeEvent` to all registered listeners (provided that the domain crosshair is visible).
`void` `setDomainCrosshairVisible(boolean flag)` Sets the flag indicating whether or not the domain crosshair is visible.
`void` `setDomainGridlinePaint(java.awt.Paint paint)` Sets the paint for the grid lines plotted against the domain axis.
`void` `setDomainGridlineStroke(java.awt.Stroke stroke)` Sets the stroke for the grid lines plotted against the domain axis.
`void` `setDomainGridlinesVisible(boolean visible)` Sets the flag that controls whether or not the domain grid-lines are visible.
`void` `setDomainTickBandPaint(java.awt.Paint paint)` Sets the paint for the domain tick bands.
`void` `setFixedDomainAxisSpace(AxisSpace space)` Sets the fixed domain axis space.
`void` `setFixedLegendItems(LegendItemCollection items)` Sets the fixed legend items for the plot.
`void` `setFixedRangeAxisSpace(AxisSpace space)` Sets the fixed range axis space.
`void` `setOrientation(PlotOrientation orientation)` Sets the orientation for the plot.
`void` `setQuadrantOrigin(java.awt.geom.Point2D origin)` Sets the quadrant origin and sends a `PlotChangeEvent` to all registered listeners.
`void` `setQuadrantPaint(int index, java.awt.Paint paint)` Sets the paint used for the specified quadrant and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxis(int index, ValueAxis axis)` Sets a range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxis(ValueAxis axis)` Sets the range axis for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxisLocation(AxisLocation location)` Sets the location of the primary range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxisLocation(AxisLocation location, boolean notify)` Sets the location of the primary range axis and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxisLocation(int index, AxisLocation location)` Sets the location for a range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeCrosshairLockedOnData(boolean flag)` Sets the flag indicating whether or not the range crosshair should "lock-on" to actual data values.
`void` `setRangeCrosshairPaint(java.awt.Paint paint)` Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
`void` `setRangeCrosshairStroke(java.awt.Stroke stroke)` Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
`void` `setRangeCrosshairValue(double value)` Sets the domain crosshair value.
`void` `setRangeCrosshairValue(double value, boolean notify)` Sets the range crosshair value.
`void` `setRangeCrosshairVisible(boolean flag)` Sets the flag indicating whether or not the range crosshair is visible.
`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` `setRangeTickBandPaint(java.awt.Paint paint)` Sets the paint for the range tick bands.
`void` `setRenderer(int index, XYItemRenderer renderer)` Sets a renderer and sends a `PlotChangeEvent` is sent to all registered listeners.
`void` `setRenderer(XYItemRenderer renderer)` Sets the renderer for the primary dataset and sends a `PlotChangeEvent` to all registered listeners.
`void` `setWeight(int weight)` Sets the weight for the plot.
`void` `setZeroRangeBaselinePaint(java.awt.Paint paint)` Sets the paint for the zero baseline plotted against the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setZeroRangeBaselineStroke(java.awt.Stroke stroke)` Sets the stroke for the zero baseline for the range axis, and sends a `PlotChangeEvent` to all registered listeners.
`void` `setZeroRangeBaselineVisible(boolean visible)` Sets the flag that controls whether or not the zero baseline is displayed for the range axis, and sends a `PlotChangeEvent` to all registered listeners.
`void` `zoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo info, java.awt.geom.Point2D source)` Zooms in on the domain axis/axes.
`void` `zoomDomainAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source)` Multiplies the range on the domain axis/axes 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.

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

`addChangeListener, axisChanged, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundPaint, getDataAreaRatio, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, isSubplot, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundPaint, setDataAreaRatio, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, 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.

### DEFAULT_CROSSHAIR_VISIBLE

    public static final boolean DEFAULT_CROSSHAIR_VISIBLE

  The default crosshair visibility.

  See Also:
    Constant Field Values

### DEFAULT_CROSSHAIR_STROKE

    public static final java.awt.Stroke DEFAULT_CROSSHAIR_STROKE

  The default crosshair stroke.

### DEFAULT_CROSSHAIR_PAINT

    public static final java.awt.Paint DEFAULT_CROSSHAIR_PAINT

  The default crosshair paint.

### localizationResources

    protected static java.util.ResourceBundle localizationResources

  The resourceBundle for the localization.

Constructor Detail

### XYPlot

    public XYPlot()

  Default constructor.

### XYPlot

    public XYPlot(XYDataset dataset,
                  ValueAxis domainAxis,
                  ValueAxis rangeAxis,
                  XYItemRenderer renderer)

  Creates a new plot.

  Parameters:
    `dataset` - the dataset (`null` permitted).
    `domainAxis` - the domain axis (`null` permitted).
    `rangeAxis` - the range axis (`null` permitted).
    `renderer` - the renderer (`null` permitted).

Method Detail

### getPlotType

    public java.lang.String getPlotType()

  Returns the plot type as a string.

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

### getOrientation

    public PlotOrientation getOrientation()

  Returns the orientation of the plot.

  Specified by:
    `getOrientation` in interface `Zoomable`
  Returns:
    The orientation of the plot.

### setOrientation

    public void setOrientation(PlotOrientation orientation)

  Sets the orientation for the plot.

  Parameters:
    `orientation` - the orientation (`null` not allowed).

### getAxisOffset

    public org.jfree.ui.RectangleInsets getAxisOffset()

  Returns the axis offset.

  Returns:
    The axis offset (never `null`).

### setAxisOffset

    public void setAxisOffset(org.jfree.ui.RectangleInsets offset)

  Sets the axis offsets (gap between the data area and the axes).

  Parameters:
    `offset` - the offset (`null` not permitted).

### getDomainAxis

    public ValueAxis getDomainAxis()

  Returns the domain axis for the plot. If the domain axis for this plot is null, then the method will return the parent plot's domain axis (if there is a parent plot).

  Returns:
    The domain axis.

### getDomainAxis

    public ValueAxis getDomainAxis(int index)

  Returns a domain axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The axis (`null` possible).

### setDomainAxis

    public void setDomainAxis(ValueAxis axis)

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

  Parameters:
    `axis` - the new axis (`null` permitted).

### setDomainAxis

    public void setDomainAxis(int index,
                              ValueAxis axis)

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

  Parameters:
    `index` - the axis index.
    `axis` - the axis.

### getDomainAxisLocation

    public AxisLocation getDomainAxisLocation()

  Returns the location of the primary domain axis.

  Returns:
    The location (never `null`).

### setDomainAxisLocation

    public void setDomainAxisLocation(AxisLocation location)

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

  Parameters:
    `location` - the location (`null` not permitted).

### setDomainAxisLocation

    public void setDomainAxisLocation(AxisLocation location,
                                      boolean notify)

  Sets the location of the domain axis and, if requested, sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `location` - the location (`null` not permitted).
    `notify` - notify listeners?

### getDomainAxisEdge

    public org.jfree.ui.RectangleEdge getDomainAxisEdge()

  Returns the edge for the primary domain axis (taking into account the plot's orientation.

  Returns:
    The edge.

### getDomainAxisCount

    public int getDomainAxisCount()

  Returns the number of domain axes.

  Returns:
    The axis count.

### clearDomainAxes

    public void clearDomainAxes()

  Clears the domain axes from the plot and sends a `PlotChangeEvent` to all registered listeners.

### configureDomainAxes

    public void configureDomainAxes()

  Configures the domain axes.

### getDomainAxisLocation

    public AxisLocation getDomainAxisLocation(int index)

  Returns the location for a domain axis. If this hasn't been set explicitly, the method returns the location that is opposite to the primary domain axis location.

  Parameters:
    `index` - the axis index.
  Returns:
    The location (never `null`).

### setDomainAxisLocation

    public void setDomainAxisLocation(int index,
                                      AxisLocation location)

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

  Parameters:
    `index` - the axis index.
    `location` - the location (`null` permitted).

### getDomainAxisEdge

    public org.jfree.ui.RectangleEdge getDomainAxisEdge(int index)

  Returns the edge for a domain axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The edge.

### getRangeAxis

    public ValueAxis getRangeAxis()

  Returns the range axis for the plot. If the range axis for this plot is null, then the method will return the parent plot's range axis (if there is a parent plot).

  Returns:
    The range axis.

### setRangeAxis

    public void setRangeAxis(ValueAxis axis)

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

  Parameters:
    `axis` - the axis (`null` permitted).

### getRangeAxisLocation

    public AxisLocation getRangeAxisLocation()

  Returns the location of the primary range axis.

  Returns:
    the location (never `null`).

### setRangeAxisLocation

    public void setRangeAxisLocation(AxisLocation location)

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

  Parameters:
    `location` - the location (`null` not permitted).

### setRangeAxisLocation

    public void setRangeAxisLocation(AxisLocation location,
                                     boolean notify)

  Sets the location of the primary range axis and, if requested, sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `location` - the location (`null` not permitted).
    `notify` - notify listeners?

### getRangeAxisEdge

    public org.jfree.ui.RectangleEdge getRangeAxisEdge()

  Returns the edge for the primary range axis.

  Returns:
    The range axis edge.

### getRangeAxis

    public ValueAxis getRangeAxis(int index)

  Returns a range axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The axis (`null` possible).

### setRangeAxis

    public void setRangeAxis(int index,
                             ValueAxis axis)

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

  Parameters:
    `index` - the axis index.
    `axis` - the axis (`null` permitted).

### getRangeAxisCount

    public int getRangeAxisCount()

  Returns the number of range axes.

  Returns:
    The axis count.

### clearRangeAxes

    public void clearRangeAxes()

  Clears the range axes from the plot and sends a `PlotChangeEvent` to all registered listeners.

### configureRangeAxes

    public void configureRangeAxes()

  Configures the range axes.

### getRangeAxisLocation

    public AxisLocation getRangeAxisLocation(int index)

  Returns the location for a range axis. If this hasn't been set explicitly, the method returns the location that is opposite to the primary range axis location.

  Parameters:
    `index` - the axis index.
  Returns:
    The location (never `null`).

### setRangeAxisLocation

    public void setRangeAxisLocation(int index,
                                     AxisLocation location)

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

  Parameters:
    `index` - the axis index.
    `location` - the location (`null` permitted).

### getRangeAxisEdge

    public org.jfree.ui.RectangleEdge getRangeAxisEdge(int index)

  Returns the edge for a range axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The edge.

### getDataset

    public XYDataset getDataset()

  Returns the primary dataset for the plot.

  Returns:
    The primary dataset (possibly `null`).

### getDataset

    public XYDataset getDataset(int index)

  Returns a dataset.

  Parameters:
    `index` - the dataset index.
  Returns:
    The dataset (possibly `null`).

### setDataset

    public void setDataset(XYDataset dataset)

  Sets the primary dataset for the plot, replacing the existing dataset if there is one.

  Parameters:
    `dataset` - the dataset (`null` permitted).

### setDataset

    public void setDataset(int index,
                           XYDataset dataset)

  Sets a dataset for the plot.

  Parameters:
    `index` - the dataset index.
    `dataset` - the dataset (`null` permitted).

### getDatasetCount

    public int getDatasetCount()

  Returns the number of datasets.

  Returns:
    The number of datasets.

### indexOf

    public int indexOf(XYDataset dataset)

  Returns the index of the specified dataset, or `-1` if the dataset does not belong to the plot.

  Parameters:
    `dataset` - the dataset (`null` not permitted).
  Returns:
    The index.

### mapDatasetToDomainAxis

    public void mapDatasetToDomainAxis(int index,
                                       int axisIndex)

  Maps a dataset to a particular domain axis.

  Parameters:
    `index` - the dataset index (zero-based).
    `axisIndex` - the axis index.

### mapDatasetToRangeAxis

    public void mapDatasetToRangeAxis(int index,
                                      int axisIndex)

  Maps a dataset to a particular range axis.

  Parameters:
    `index` - the dataset index (zero-based).
    `axisIndex` - the axis index.

### getRenderer

    public XYItemRenderer getRenderer()

  Returns the renderer for the primary dataset.

  Returns:
    The item renderer (possibly `null`).

### getRenderer

    public XYItemRenderer getRenderer(int index)

  Returns the renderer for a dataset, or `null`.

  Parameters:
    `index` - the renderer index.
  Returns:
    The renderer (possibly `null`).

### setRenderer

    public void setRenderer(XYItemRenderer renderer)

  Sets the renderer for the primary dataset and sends a `PlotChangeEvent` to all registered listeners. If the renderer is set to `null`, no data will be displayed.

  Parameters:
    `renderer` - the renderer (`null` permitted).

### setRenderer

    public void setRenderer(int index,
                            XYItemRenderer renderer)

  Sets a renderer and sends a `PlotChangeEvent` is sent to all registered listeners.

  Parameters:
    `index` - the index.
    `renderer` - the renderer.

### getDatasetRenderingOrder

    public DatasetRenderingOrder getDatasetRenderingOrder()

  Returns the dataset rendering order.

  Returns:
    the order (never `null`).

### setDatasetRenderingOrder

    public void setDatasetRenderingOrder(DatasetRenderingOrder order)

  Sets the rendering order and sends a `PlotChangeEvent` to all registered listeners. By default, the plot renders the primary dataset last (so that the primary dataset overlays the secondary datasets). You can reverse this if you want to.

  Parameters:
    `order` - the rendering order (`null` not permitted).

### getIndexOf

    public int getIndexOf(XYItemRenderer renderer)

  Returns the index of the specified renderer, or `-1` if the renderer is not assigned to this plot.

  Parameters:
    `renderer` - the renderer (`null` permitted).
  Returns:
    The renderer index.

### getRendererForDataset

    public XYItemRenderer getRendererForDataset(XYDataset dataset)

  Returns the renderer for the specified dataset. The code first determines the index of the dataset, then checks if there is a renderer with the same index (if not, the method returns renderer(0).

  Parameters:
    `dataset` - the dataset (`null` permitted).
  Returns:
    The renderer (possibly `null`).

### getWeight

    public int getWeight()

  Returns the weight for this plot when it is used as a subplot within a combined plot.

  Returns:
    The weight.

### setWeight

    public void setWeight(int weight)

  Sets the weight for the plot.

  Parameters:
    `weight` - the weight.

### isDomainGridlinesVisible

    public boolean isDomainGridlinesVisible()

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

  ``
  Returns:
    `true` or `false`.

### 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.

### getDomainGridlineStroke

    public java.awt.Stroke getDomainGridlineStroke()

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

  Returns:
    the stroke.

### setDomainGridlineStroke

    public void setDomainGridlineStroke(java.awt.Stroke stroke)

  Sets the stroke for the grid lines plotted against the domain axis.

  If you set this to `null`, no grid lines will be drawn.

  Parameters:
    `stroke` - the stroke (`null` permitted).

### getDomainGridlinePaint

    public java.awt.Paint getDomainGridlinePaint()

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

  Returns:
    the paint.

### setDomainGridlinePaint

    public void setDomainGridlinePaint(java.awt.Paint paint)

  Sets the paint for the grid lines plotted against the domain axis.

  If you set this to `null`, no grid lines will be drawn.

  Parameters:
    `paint` - the paint (`null` permitted).

### isRangeGridlinesVisible

    public boolean isRangeGridlinesVisible()

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

  ``
  Returns:
    A 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.

### 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`).

### 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` not permitted).

### 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`).

### 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` permitted).

### isZeroRangeBaselineVisible

    public boolean isZeroRangeBaselineVisible()

  Returns a flag that controls whether or not a zero baseline is displayed for the range axis.

  Returns:
    A boolean.

### setZeroRangeBaselineVisible

    public void setZeroRangeBaselineVisible(boolean visible)

  Sets the flag that controls whether or not the zero baseline is displayed for the range axis, and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag.

### getZeroRangeBaselineStroke

    public java.awt.Stroke getZeroRangeBaselineStroke()

  Returns the stroke used for the zero baseline against the range axis.

  Returns:
    The stroke (never `null`).

### setZeroRangeBaselineStroke

    public void setZeroRangeBaselineStroke(java.awt.Stroke stroke)

  Sets the stroke for the zero baseline for the range axis, and sends a `PlotChangeEvent` to all registered listeners.

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

### getZeroRangeBaselinePaint

    public java.awt.Paint getZeroRangeBaselinePaint()

  Returns the paint for the zero baseline (if any) plotted against the range axis.

  Returns:
    The paint (never `null`).

### setZeroRangeBaselinePaint

    public void setZeroRangeBaselinePaint(java.awt.Paint paint)

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

  Parameters:
    `paint` - the paint (`null` permitted).

### getDomainTickBandPaint

    public java.awt.Paint getDomainTickBandPaint()

  Returns the paint used for the domain tick bands. If this is `null`, no tick bands will be drawn.

  Returns:
    The paint (possibly `null`).

### setDomainTickBandPaint

    public void setDomainTickBandPaint(java.awt.Paint paint)

  Sets the paint for the domain tick bands.

  Parameters:
    `paint` - the paint (`null` permitted).

### getRangeTickBandPaint

    public java.awt.Paint getRangeTickBandPaint()

  Returns the paint used for the range tick bands. If this is `null`, no tick bands will be drawn.

  Returns:
    The paint (possibly `null`).

### setRangeTickBandPaint

    public void setRangeTickBandPaint(java.awt.Paint paint)

  Sets the paint for the range tick bands.

  Parameters:
    `paint` - the paint (`null` permitted).

### getQuadrantOrigin

    public java.awt.geom.Point2D getQuadrantOrigin()

  Returns the origin for the quadrants that can be displayed on the plot. This defaults to (0, 0).

  Returns:
    The origin point (never `null`).

### setQuadrantOrigin

    public void setQuadrantOrigin(java.awt.geom.Point2D origin)

  Sets the quadrant origin and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `origin` - the origin (`null` not permitted).

### getQuadrantPaint

    public java.awt.Paint getQuadrantPaint(int index)

  Returns the paint used for the specified quadrant.

  Parameters:
    `index` - the quadrant index (0-3).
  Returns:
    The paint (possibly `null`).

### setQuadrantPaint

    public void setQuadrantPaint(int index,
                                 java.awt.Paint paint)

  Sets the paint used for the specified quadrant and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `index` - the quadrant index (0-3).
    `paint` - the paint (`null` permitted).

### addDomainMarker

    public void addDomainMarker(Marker marker)

  Adds a marker for the domain axis and sends a `PlotChangeEvent` to all registered listeners.

  Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

  Parameters:
    `marker` - the marker (`null` not permitted).

### addDomainMarker

    public void addDomainMarker(Marker marker,
                                org.jfree.ui.Layer layer)

  Adds a marker for the domain axis in the specified layer and sends a `PlotChangeEvent` to all registered listeners.

  Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

  Parameters:
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (foreground or background).

### clearDomainMarkers

    public void clearDomainMarkers()

  Clears all the (foreground and background) domain markers and sends a `PlotChangeEvent` to all registered listeners.

### addDomainMarker

    public void addDomainMarker(int index,
                                Marker marker,
                                org.jfree.ui.Layer layer)

  Adds a marker for a renderer and sends a `PlotChangeEvent` to all registered listeners.

  Typically a marker will be drawn by the renderer as a line perpendicular to the domain axis (that the renderer is mapped to), however this is entirely up to the renderer.

  Parameters:
    `index` - the renderer index.
    `marker` - the marker.
    `layer` - the layer (foreground or background).

### addRangeMarker

    public void addRangeMarker(Marker marker)

  Adds a marker for the range axis and sends a `PlotChangeEvent` to all registered listeners.

  Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

  Parameters:
    `marker` - the marker (`null` not permitted).

### addRangeMarker

    public void addRangeMarker(Marker marker,
                               org.jfree.ui.Layer layer)

  Adds a marker for the range axis in the specified layer and sends a `PlotChangeEvent` to all registered listeners.

  Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

  Parameters:
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (foreground or background).

### clearRangeMarkers

    public void clearRangeMarkers()

  Clears all the range markers and sends a `PlotChangeEvent` to all registered listeners.

### addRangeMarker

    public void addRangeMarker(int index,
                               Marker marker,
                               org.jfree.ui.Layer layer)

  Adds a marker for a renderer and sends a `PlotChangeEvent` to all registered listeners.

  Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

  Parameters:
    `index` - the renderer index.
    `marker` - the marker.
    `layer` - the layer (foreground or background).

### clearRangeMarkers

    public void clearRangeMarkers(int index)

  Clears the (foreground and background) range markers for a particular renderer.

  Parameters:
    `index` - the renderer index.

### addAnnotation

    public void addAnnotation(XYAnnotation annotation)

  Adds an annotation to the plot and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `annotation` - the annotation (`null` not permitted).

### removeAnnotation

    public boolean removeAnnotation(XYAnnotation annotation)

  Removes an annotation from the plot and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `annotation` - the annotation (`null` not permitted).
  Returns:
    A boolean (indicates whether or not the annotation is removed).

### clearAnnotations

    public void clearAnnotations()

  Clears all the annotations and sends a `PlotChangeEvent` to all registered listeners.

### calculateAxisSpace

    protected AxisSpace calculateAxisSpace(java.awt.Graphics2D g2,
                                           java.awt.geom.Rectangle2D plotArea)

  Calculates the space required for all the axes in the plot.

  Parameters:
    `g2` - the graphics device.
    `plotArea` - the plot area.
  Returns:
    The required space.

### calculateDomainAxisSpace

    protected AxisSpace calculateDomainAxisSpace(java.awt.Graphics2D g2,
                                                 java.awt.geom.Rectangle2D plotArea,
                                                 AxisSpace space)

  Calculates the space required for the domain axis/axes.

  Parameters:
    `g2` - the graphics device.
    `plotArea` - the plot area.
    `space` - a carrier for the result (`null` permitted).
  Returns:
    The required space.

### calculateRangeAxisSpace

    protected AxisSpace calculateRangeAxisSpace(java.awt.Graphics2D g2,
                                                java.awt.geom.Rectangle2D plotArea,
                                                AxisSpace space)

  Calculates the space required for the range axis/axes.

  Parameters:
    `g2` - the graphics device.
    `plotArea` - the plot area.
    `space` - a carrier for the result (`null` permitted).
  Returns:
    The required space.

### draw

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

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

  This plot relies on an `XYItemRenderer` to draw each item in the plot. This allows the visual representation of the data to be changed easily.

  The optional info argument collects information about the rendering of the plot (dimensions, tooltip information etc). Just pass in `null` if you do not need this information.

  Specified by:
    `draw` in class `Plot`
  Parameters:
    `g2` - the graphics device.
    `area` - the area within which the plot (including axes and labels) should be drawn.
    `parentState` - the state from the parent plot, if there is one.
    `state` - collects chart drawing information (`null` permitted).

### draw

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

  Draws the plot within the specified area on a graphics device.

  Overrides:
    `draw` in class `Plot`
  Parameters:
    `g2` - the graphics device.
    `area` - the plot area (in Java2D space).
    `anchor` - an anchor point in Java2D space (`null` permitted).
    `parentState` - the state from the parent plot, if there is one (`null` permitted).
    `info` - collects chart drawing information (`null` permitted).

### drawBackground

    public void drawBackground(java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D area)

  Draws the background for the plot.

  Overrides:
    `drawBackground` in class `Plot`
  Parameters:
    `g2` - the graphics device.
    `area` - the area.

### drawQuadrants

    protected void drawQuadrants(java.awt.Graphics2D g2,
                                 java.awt.geom.Rectangle2D area)

  Draws the quadrants.

  Parameters:
    `g2` - the graphics device.
    `area` - the area.

### drawDomainTickBands

    public void drawDomainTickBands(java.awt.Graphics2D g2,
                                    java.awt.geom.Rectangle2D dataArea,
                                    java.util.List ticks)

  Draws the domain tick bands, if any.

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

### drawRangeTickBands

    public void drawRangeTickBands(java.awt.Graphics2D g2,
                                   java.awt.geom.Rectangle2D dataArea,
                                   java.util.List ticks)

  Draws the range tick bands, if any.

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

### drawAxes

    protected java.util.Map drawAxes(java.awt.Graphics2D g2,
                                     java.awt.geom.Rectangle2D plotArea,
                                     java.awt.geom.Rectangle2D dataArea,
                                     PlotRenderingInfo plotState)

  A utility method for drawing the axes.

  Parameters:
    `g2` - the graphics device (`null` not permitted).
    `plotArea` - the plot area (`null` not permitted).
    `dataArea` - the data area (`null` not permitted).
    `plotState` - collects information about the plot (`null` permitted).
  Returns:
    A map containing the state for each axis drawn.

### render

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

  Draws a representation of the data within the dataArea region, using the current renderer.

  The `info` and `crosshairState` arguments may be `null`.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the region in which the data is to be drawn.
    `index` - the dataset index.
    `info` - an optional object for collection dimension information.
    `crosshairState` - collects crosshair information (`null` permitted).
  Returns:
    A flag that indicates whether any data was actually rendered.

### getDomainAxisForDataset

    public ValueAxis getDomainAxisForDataset(int index)

  Returns the domain axis for a dataset.

  Parameters:
    `index` - the dataset index.
  Returns:
    The axis.

### getRangeAxisForDataset

    public ValueAxis getRangeAxisForDataset(int index)

  Returns the range axis for a dataset.

  Parameters:
    `index` - the dataset index.
  Returns:
    The axis.

### 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's primary range axis, if they are visible.

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

### drawZeroRangeBaseline

    protected void drawZeroRangeBaseline(java.awt.Graphics2D g2,
                                         java.awt.geom.Rectangle2D dataArea)

  Draws the gridlines for the plot's primary range axis, if they are visible.

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

### drawAnnotations

    public void drawAnnotations(java.awt.Graphics2D g2,
                                java.awt.geom.Rectangle2D dataArea,
                                PlotRenderingInfo info)

  Draws the annotations for the plot.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `info` - the chart rendering info.

### drawDomainMarkers

    protected void drawDomainMarkers(java.awt.Graphics2D g2,
                                     java.awt.geom.Rectangle2D dataArea,
                                     org.jfree.ui.Layer layer)

  Draws the domain markers (if any) for the specified layer. This method is typically called from within the draw() method.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `layer` - the layer (foreground or background).

### drawRangeMarkers

    protected void drawRangeMarkers(java.awt.Graphics2D g2,
                                    java.awt.geom.Rectangle2D dataArea,
                                    org.jfree.ui.Layer layer)

  Draws the range markers (if any) for the specified layer. This method is typically called from within the draw() method.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `layer` - the layer (foreground or background).

### drawDomainMarkers

    protected void drawDomainMarkers(java.awt.Graphics2D g2,
                                     java.awt.geom.Rectangle2D dataArea,
                                     int index,
                                     org.jfree.ui.Layer layer)

  Draws the domain markers (if any) for an axis and layer. This method is typically called from within the draw() method.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `index` - the renderer index.
    `layer` - the layer (foreground or background).

### drawRangeMarkers

    protected void drawRangeMarkers(java.awt.Graphics2D g2,
                                    java.awt.geom.Rectangle2D dataArea,
                                    int index,
                                    org.jfree.ui.Layer layer)

  Draws the range markers (if any) for a renderer and layer. This method is typically called from within the draw() method.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `index` - the renderer index.
    `layer` - the layer (foreground or background).

### getDomainMarkers

    public java.util.Collection getDomainMarkers(org.jfree.ui.Layer layer)

  Returns the list of domain markers (read only) for the specified layer.

  Parameters:
    `layer` - the layer (foreground or background).
  Returns:
    The list of domain markers.

### getRangeMarkers

    public java.util.Collection getRangeMarkers(org.jfree.ui.Layer layer)

  Returns the list of range markers (read only) for the specified layer.

  Parameters:
    `layer` - the layer (foreground or background).
  Returns:
    The list of range markers.

### getDomainMarkers

    public java.util.Collection getDomainMarkers(int index,
                                                 org.jfree.ui.Layer layer)

  Returns a collection of domain markers for a particular renderer and layer.

  Parameters:
    `index` - the renderer index.
    `layer` - the layer.
  Returns:
    A collection of markers (possibly `null`).

### getRangeMarkers

    public java.util.Collection getRangeMarkers(int index,
                                                org.jfree.ui.Layer layer)

  Returns a collection of range markers for a particular renderer and layer.

  Parameters:
    `index` - the renderer index.
    `layer` - the layer.
  Returns:
    A collection of markers (possibly `null`).

### drawHorizontalLine

    protected void drawHorizontalLine(java.awt.Graphics2D g2,
                                      java.awt.geom.Rectangle2D dataArea,
                                      double value,
                                      java.awt.Stroke stroke,
                                      java.awt.Paint paint)

  Utility method for drawing a horizontal line across the data area of the plot.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `value` - the coordinate, where to draw the line.
    `stroke` - the stroke to use.
    `paint` - the paint to use.

### drawVerticalLine

    protected void drawVerticalLine(java.awt.Graphics2D g2,
                                    java.awt.geom.Rectangle2D dataArea,
                                    double value,
                                    java.awt.Stroke stroke,
                                    java.awt.Paint paint)

  Utility method for drawing a vertical line on the data area of the plot.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the data area.
    `value` - the coordinate, where to draw the line.
    `stroke` - the stroke to use.
    `paint` - the paint to use.

### handleClick

    public void handleClick(int x,
                            int y,
                            PlotRenderingInfo info)

  Handles a 'click' on the plot by updating the anchor values...

  Overrides:
    `handleClick` in class `Plot`
  Parameters:
    `x` - the x-coordinate, where the click occurred, in Java2D space.
    `y` - the y-coordinate, where the click occurred, in Java2D space.
    `info` - object containing information about the plot dimensions.

### getDomainAxisIndex

    protected int getDomainAxisIndex(ValueAxis axis)

  Returns the index of the given domain axis.

  Parameters:
    `axis` - the axis.
  Returns:
    The axis index.

### getRangeAxisIndex

    protected int getRangeAxisIndex(ValueAxis axis)

  Returns the index of the given range axis.

  Parameters:
    `axis` - the axis.
  Returns:
    The axis index.

### getDataRange

    public Range getDataRange(ValueAxis axis)

  Returns the range for the specified axis.

  Specified by:
    `getDataRange` in interface `ValueAxisPlot`
  Parameters:
    `axis` - the axis.
  Returns:
    The range.

### datasetChanged

    public void datasetChanged(DatasetChangeEvent event)

  Receives notification of a change to the plot's dataset.

  The axis ranges are updated if necessary.

  Specified by:
    `datasetChanged` in interface `DatasetChangeListener`
  Overrides:
    `datasetChanged` in class `Plot`
  Parameters:
    `event` - information about the event (not used here).

### rendererChanged

    public void rendererChanged(RendererChangeEvent event)

  Receives notification of a renderer change event.

  Specified by:
    `rendererChanged` in interface `RendererChangeListener`
  Parameters:
    `event` - the event.

### isDomainCrosshairVisible

    public boolean isDomainCrosshairVisible()

  Returns a flag indicating whether or not the domain crosshair is visible.

  Returns:
    the flag.

### setDomainCrosshairVisible

    public void setDomainCrosshairVisible(boolean flag)

  Sets the flag indicating whether or not the domain crosshair is visible.

  Parameters:
    `flag` - the new value of the flag.

### isDomainCrosshairLockedOnData

    public boolean isDomainCrosshairLockedOnData()

  Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.

  Returns:
    the flag.

### setDomainCrosshairLockedOnData

    public void setDomainCrosshairLockedOnData(boolean flag)

  Sets the flag indicating whether or not the domain crosshair should "lock-on" to actual data values.

  Parameters:
    `flag` - the flag.

### getDomainCrosshairValue

    public double getDomainCrosshairValue()

  Returns the domain crosshair value.

  Returns:
    The value.

### setDomainCrosshairValue

    public void setDomainCrosshairValue(double value)

  Sets the domain crosshair value and sends a `PlotChangeEvent` to all registered listeners (provided that the domain crosshair is visible).

  Parameters:
    `value` - the value.

### setDomainCrosshairValue

    public void setDomainCrosshairValue(double value,
                                        boolean notify)

  Sets the domain crosshair value and, if requested, sends a `PlotChangeEvent` to all registered listeners (provided that the domain crosshair is visible).

  Parameters:
    `value` - the new value.
    `notify` - notify listeners?

### getDomainCrosshairStroke

    public java.awt.Stroke getDomainCrosshairStroke()

  Returns the `Stroke` used to draw the crosshair (if visible).

  Returns:
    The crosshair stroke.

### setDomainCrosshairStroke

    public void setDomainCrosshairStroke(java.awt.Stroke stroke)

  Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

  Parameters:
    `stroke` - the new crosshair stroke.

### getDomainCrosshairPaint

    public java.awt.Paint getDomainCrosshairPaint()

  Returns the domain crosshair color.

  Returns:
    The crosshair color.

### setDomainCrosshairPaint

    public void setDomainCrosshairPaint(java.awt.Paint paint)

  Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

  Parameters:
    `paint` - the new crosshair paint.

### isRangeCrosshairVisible

    public boolean isRangeCrosshairVisible()

  Returns a flag indicating whether or not the range crosshair is visible.

  Returns:
    The flag.

### setRangeCrosshairVisible

    public void setRangeCrosshairVisible(boolean flag)

  Sets the flag indicating whether or not the range crosshair is visible.

  Parameters:
    `flag` - the new value of the flag.

### isRangeCrosshairLockedOnData

    public boolean isRangeCrosshairLockedOnData()

  Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.

  Returns:
    The flag.

### setRangeCrosshairLockedOnData

    public void setRangeCrosshairLockedOnData(boolean flag)

  Sets the flag indicating whether or not the range crosshair should "lock-on" to actual data values.

  Parameters:
    `flag` - the flag.

### getRangeCrosshairValue

    public double getRangeCrosshairValue()

  Returns the range crosshair value.

  Returns:
    The value.

### setRangeCrosshairValue

    public void setRangeCrosshairValue(double value)

  Sets the domain crosshair value.

  Registered listeners are notified that the plot has been modified, but only if the crosshair is visible.

  Parameters:
    `value` - the new value.

### setRangeCrosshairValue

    public void setRangeCrosshairValue(double value,
                                       boolean notify)

  Sets the range crosshair value.

  Registered listeners are notified that the axis has been modified, but only if the crosshair is visible.

  Parameters:
    `value` - the new value.
    `notify` - a flag that controls whether or not listeners are notified.

### getRangeCrosshairStroke

    public java.awt.Stroke getRangeCrosshairStroke()

  Returns the Stroke used to draw the crosshair (if visible).

  Returns:
    the crosshair stroke.

### setRangeCrosshairStroke

    public void setRangeCrosshairStroke(java.awt.Stroke stroke)

  Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

  Parameters:
    `stroke` - the new crosshair stroke.

### getRangeCrosshairPaint

    public java.awt.Paint getRangeCrosshairPaint()

  Returns the range crosshair color.

  Returns:
    the crosshair color.

### setRangeCrosshairPaint

    public void setRangeCrosshairPaint(java.awt.Paint paint)

  Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

  Parameters:
    `paint` - the new crosshair paint.

### getFixedDomainAxisSpace

    public AxisSpace getFixedDomainAxisSpace()

  Returns the fixed domain axis space.

  Returns:
    The fixed domain axis space (possibly `null`).

### setFixedDomainAxisSpace

    public void setFixedDomainAxisSpace(AxisSpace space)

  Sets the fixed domain axis space.

  Parameters:
    `space` - the space.

### getFixedRangeAxisSpace

    public AxisSpace getFixedRangeAxisSpace()

  Returns the fixed range axis space.

  Returns:
    The fixed range axis space.

### setFixedRangeAxisSpace

    public void setFixedRangeAxisSpace(AxisSpace space)

  Sets the fixed range axis space.

  Parameters:
    `space` - the space.

### zoomDomainAxes

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

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

  Specified by:
    `zoomDomainAxes` in interface `Zoomable`
  Parameters:
    `factor` - the zoom factor.
    `info` - the plot rendering info.
    `source` - the source point.

### zoomDomainAxes

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

  Zooms in on the domain axis/axes. The new lower and upper bounds are specified as percentages of the current axis range, where 0 percent is the current lower bound and 100 percent is the current upper bound.

  Specified by:
    `zoomDomainAxes` in interface `Zoomable`
  Parameters:
    `lowerPercent` - a percentage that determines the new lower bound for the axis (e.g. 0.20 is twenty percent).
    `upperPercent` - a percentage that determines the new upper bound for the axis (e.g. 0.80 is eighty percent).
    `info` - the plot rendering info.
    `source` - the source point.

### 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.

### 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 lower bound.
    `upperPercent` - the upper bound.
    `info` - the plot rendering info.
    `source` - the source point.

### isDomainZoomable

    public boolean isDomainZoomable()

  Returns `true`

  Specified by:
    `isDomainZoomable` in interface `Zoomable`
  Returns:
    A boolean.

### isRangeZoomable

    public boolean isRangeZoomable()

  Returns `true`

  Specified by:
    `isRangeZoomable` in interface `Zoomable`
  Returns:
    A boolean.

### getSeriesCount

    public int getSeriesCount()

  Returns the number of series in the primary dataset for this plot. If the dataset is `null`, the method returns 0.

  Returns:
    The series count.

### getFixedLegendItems

    public LegendItemCollection getFixedLegendItems()

  Returns the fixed legend items, if any.

  Returns:
    The legend items (possibly `null`).

### setFixedLegendItems

    public void setFixedLegendItems(LegendItemCollection items)

  Sets the fixed legend items for the plot. Leave this set to `null` if you prefer the legend items to be created automatically.

  Parameters:
    `items` - the legend items (`null` permitted).

### getLegendItems

    public LegendItemCollection getLegendItems()

  Returns the legend items for the plot. Each legend item is generated by the plot's renderer, since the renderer is responsible for the visual representation of the data.

  Specified by:
    `getLegendItems` in interface `LegendItemSource`
  Overrides:
    `getLegendItems` in class `Plot`
  Returns:
    The legend items.

### equals

    public boolean equals(java.lang.Object obj)

  Tests this plot for equality with another object.

  Overrides:
    `equals` in class `Plot`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    `true` or `false`.

### 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` - this can occur if some component of the plot cannot be cloned.