## org.jfree.chart.plot
Class CategoryPlot

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

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

Direct Known Subclasses:
  CombinedDomainCategoryPlot, CombinedRangeCategoryPlot

    public class CategoryPlot

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

A general plotting class that uses data from a `CategoryDataset` and renders each data item using a `CategoryItemRenderer`.

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 boolean` `DEFAULT_DOMAIN_GRIDLINES_VISIBLE` The default visibility of the grid lines plotted against the domain axis.
`static java.awt.Paint` `DEFAULT_GRIDLINE_PAINT` The default grid line paint.
`static java.awt.Stroke` `DEFAULT_GRIDLINE_STROKE` The default grid line stroke.
`static boolean` `DEFAULT_RANGE_GRIDLINES_VISIBLE` The default visibility of the grid lines plotted against the range axis.
`static java.awt.Font` `DEFAULT_VALUE_LABEL_FONT` The default value label font.
`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
`CategoryPlot()` Default constructor.
`CategoryPlot(CategoryDataset dataset, CategoryAxis domainAxis, ValueAxis rangeAxis, CategoryItemRenderer renderer)` Creates a new plot.

Method Summary
`void` `addAnnotation(CategoryAnnotation annotation)` Adds an annotation to the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `addAnnotation(CategoryAnnotation annotation, boolean notify)` Adds an annotation to the plot and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(CategoryMarker marker)` Adds a marker for display (in the foreground) against the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(CategoryMarker marker, org.jfree.ui.Layer layer)` Adds a marker for display against the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(int index, CategoryMarker marker, org.jfree.ui.Layer layer)` Adds a marker for display by a particular renderer and sends a `PlotChangeEvent` to all registered listeners.
`void` `addDomainMarker(int index, CategoryMarker marker, org.jfree.ui.Layer layer, boolean notify)` Adds a marker for display by a particular renderer and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(int index, Marker marker, org.jfree.ui.Layer layer)` Adds a marker for display by a particular renderer and sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(int index, Marker marker, org.jfree.ui.Layer layer, boolean notify)` Adds a marker for display by a particular renderer and sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(Marker marker)` Adds a marker for display (in the foreground) against the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `addRangeMarker(Marker marker, org.jfree.ui.Layer layer)` Adds a marker for display against the range axis 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 the axes.
`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 domain markers for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearDomainMarkers(int index)` Clears all the domain markers for the specified renderer.
`void` `clearRangeAxes()` Clears the range axes from the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearRangeMarkers()` Clears all the range markers for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearRangeMarkers(int index)` Clears all the range markers for the specified 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, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo state)` Draws the plot on a Java 2D graphics device (such as the screen or a printer).
`protected void` `drawAnnotations(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea)` Draws the annotations.
`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 plot's axes.
`void` `drawBackground(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the plot background (the background color and/or image).
`protected void` `drawDomainGridlines(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea)` Draws the gridlines for the plot.
`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` `drawRangeCrosshair(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, PlotOrientation orientation, double value, ValueAxis axis, java.awt.Stroke stroke, java.awt.Paint paint)` Draws a range crosshair.
`protected void` `drawRangeGridlines(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, java.util.List ticks)` Draws the gridlines for the plot.
`protected void` `drawRangeLine(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double value, java.awt.Stroke stroke, java.awt.Paint paint)` Utility method for drawing a line perpendicular to the range axis (used for crosshairs).
`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 an axis and layer.
`boolean` `equals(java.lang.Object obj)` Tests the plot for equality with an arbitrary object.
`double` `getAnchorValue()` Returns the anchor value.
`java.util.List` `getAnnotations()` Returns the list of annotations.
`org.jfree.ui.RectangleInsets` `getAxisOffset()` Returns the axis offset.
`java.util.List` `getCategories()` Returns a list of the categories in the plot's primary dataset.
`java.util.List` `getCategoriesForAxis(CategoryAxis axis)` Returns a list of the categories that should be displayed for the specified axis.
`org.jfree.util.SortOrder` `getColumnRenderingOrder()` Returns the order in which the columns are rendered.
`Range` `getDataRange(ValueAxis axis)` Returns the range of data values that will be plotted against the range axis.
`CategoryDataset` `getDataset()` Returns the primary dataset for the plot.
`CategoryDataset` `getDataset(int index)` Returns the dataset at the given index.
`int` `getDatasetCount()` Returns the number of datasets.
`DatasetRenderingOrder` `getDatasetRenderingOrder()` Returns the dataset rendering order.
`CategoryAxis` `getDomainAxis()` Returns the domain axis for the plot.
`CategoryAxis` `getDomainAxis(int index)` Returns a domain axis.
`int` `getDomainAxisCount()` Returns the number of domain axes.
`org.jfree.ui.RectangleEdge` `getDomainAxisEdge()` Returns the domain axis edge.
`org.jfree.ui.RectangleEdge` `getDomainAxisEdge(int index)` Returns the edge for a domain axis.
`CategoryAxis` `getDomainAxisForDataset(int index)` Returns the domain axis for a dataset.
`int` `getDomainAxisIndex(CategoryAxis axis)` Returns the index of the specified axis, or `-1` if the axis is not assigned to the plot.
`AxisLocation` `getDomainAxisLocation()` Returns the domain axis location for the primary domain axis.
`AxisLocation` `getDomainAxisLocation(int index)` Returns the location for a domain axis.
`java.awt.Paint` `getDomainGridlinePaint()` Returns the paint used to draw grid-lines against the domain axis.
`CategoryAnchor` `getDomainGridlinePosition()` Returns the position used for the domain gridlines.
`java.awt.Stroke` `getDomainGridlineStroke()` Returns the stroke used to draw grid-lines 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.
`boolean` `getDrawSharedDomainAxis()` Returns the flag that controls whether or not the shared domain axis is drawn for each subplot.
`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(CategoryItemRenderer 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 a string describing the type of plot.
`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 where the primary range axis is located.
`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.
`int` `getRangeAxisIndex(ValueAxis axis)` Returns the index of the specified axis, or `-1` if the axis is not assigned to the plot.
`AxisLocation` `getRangeAxisLocation()` Returns the range axis location.
`AxisLocation` `getRangeAxisLocation(int index)` Returns the location for a range axis.
`java.awt.Paint` `getRangeCrosshairPaint()` Returns the paint used to draw the range crosshair.
`java.awt.Stroke` `getRangeCrosshairStroke()` Returns the pen-style (`Stroke`) used to draw the crosshair (if visible).
`double` `getRangeCrosshairValue()` Returns the range crosshair value.
`java.awt.Paint` `getRangeGridlinePaint()` Returns the paint used to draw the grid-lines against the range axis.
`java.awt.Stroke` `getRangeGridlineStroke()` Returns the stroke used to draw the grid-lines 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.
`CategoryItemRenderer` `getRenderer()` Returns a reference to the renderer for the plot.
`CategoryItemRenderer` `getRenderer(int index)` Returns the renderer at the given index.
`CategoryItemRenderer` `getRendererForDataset(CategoryDataset dataset)` Returns the renderer for the specified dataset.
`org.jfree.util.SortOrder` `getRowRenderingOrder()` Returns the order in which the rows should be rendered.
`int` `getWeight()` Returns the weight for this plot when it is used as a subplot within a combined plot.
`void` `handleClick(int x, int y, PlotRenderingInfo info)` Handles a 'click' on the plot by updating the anchor value.
`boolean` `isDomainGridlinesVisible()` Returns the flag that controls whether the domain grid-lines are visible.
`boolean` `isDomainZoomable()` Returns `false` to indicate that the domain axes are not zoomable.
`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 the flag that controls whether the range grid-lines are visible.
`boolean` `isRangeZoomable()` Returns `true` to indicate that the range axes are zoomable.
`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(CategoryAnnotation annotation)` Removes an annotation from the plot and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeAnnotation(CategoryAnnotation annotation, boolean notify)` Removes an annotation from the plot and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeDomainMarker(int index, Marker marker, org.jfree.ui.Layer layer)` Removes a marker for a specific dataset/renderer and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeDomainMarker(int index, Marker marker, org.jfree.ui.Layer layer, boolean notify)` Removes a marker for a specific dataset/renderer and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeDomainMarker(Marker marker)` Removes a marker for the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeDomainMarker(Marker marker, org.jfree.ui.Layer layer)` Removes a marker for the domain axis in the specified layer and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeRangeMarker(int index, Marker marker, org.jfree.ui.Layer layer)` Removes a marker for a specific dataset/renderer and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeRangeMarker(int index, Marker marker, org.jfree.ui.Layer layer, boolean notify)` Removes a marker for a specific dataset/renderer and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeRangeMarker(Marker marker)` Removes a marker for the range axis and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `removeRangeMarker(Marker marker, org.jfree.ui.Layer layer)` Removes a marker for the range axis in the specified layer and sends a `PlotChangeEvent` to all registered listeners.
`boolean` `render(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, int index, PlotRenderingInfo info)` Draws a representation of a dataset within the dataArea region using the appropriate renderer.
`void` `rendererChanged(RendererChangeEvent event)` Receives notification of a renderer change event.
`void` `setAnchorValue(double value)` Sets the anchor value and sends a `PlotChangeEvent` to all registered listeners.
`void` `setAnchorValue(double value, boolean notify)` Sets the anchor value and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`void` `setAxisOffset(org.jfree.ui.RectangleInsets offset)` Sets the axis offsets (gap between the data area and the axes) and sends a `PlotChangeEvent` to all registered listeners.
`void` `setColumnRenderingOrder(org.jfree.util.SortOrder order)` Sets the column order in which the items in each dataset should be rendered and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDataset(CategoryDataset dataset)` Sets the dataset for the plot, replacing the existing dataset, if there is one.
`void` `setDataset(int index, CategoryDataset dataset)` Sets a dataset for the plot.
`void` `setDatasetRenderingOrder(DatasetRenderingOrder order)` Sets the rendering order and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxes(CategoryAxis[] axes)` Sets the domain axes for this plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxis(CategoryAxis axis)` Sets the domain axis for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxis(int index, CategoryAxis axis)` Sets a domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainAxis(int index, CategoryAxis axis, boolean notify)` Sets a domain axis and, if requested, 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` `setDomainAxisLocation(int index, AxisLocation location, boolean notify)` Sets the location for a domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlinePaint(java.awt.Paint paint)` Sets the paint used to draw the grid-lines (if any) against the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlinePosition(CategoryAnchor position)` Sets the position used for the domain gridlines and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlineStroke(java.awt.Stroke stroke)` Sets the stroke used to draw grid-lines against the domain axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDomainGridlinesVisible(boolean visible)` Sets the flag that controls whether or not grid-lines are drawn against the domain axis.
`void` `setDrawSharedDomainAxis(boolean draw)` Sets the flag that controls whether the shared domain axis is drawn when this plot is being used as a subplot.
`void` `setFixedDomainAxisSpace(AxisSpace space)` Sets the fixed domain axis space and sends a `PlotChangeEvent` to all registered listeners.
`void` `setFixedDomainAxisSpace(AxisSpace space, boolean notify)` Sets the fixed domain axis space and sends a `PlotChangeEvent` to all registered listeners.
`void` `setFixedLegendItems(LegendItemCollection items)` Sets the fixed legend items for the plot.
`void` `setFixedRangeAxisSpace(AxisSpace space)` Sets the fixed range axis space and sends a `PlotChangeEvent` to all registered listeners.
`void` `setFixedRangeAxisSpace(AxisSpace space, boolean notify)` Sets the fixed range axis space and sends a `PlotChangeEvent` to all registered listeners.
`void` `setOrientation(PlotOrientation orientation)` Sets the orientation for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxes(ValueAxis[] axes)` Sets the range axes for this plot 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(int index, ValueAxis axis, boolean notify)` Sets a range axis and, if requested, 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 range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeAxisLocation(AxisLocation location, boolean notify)` Sets the location of the 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` `setRangeAxisLocation(int index, AxisLocation location, boolean notify)` 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, and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeCrosshairPaint(java.awt.Paint paint)` Sets the paint used to draw the range crosshair (if visible) and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeCrosshairStroke(java.awt.Stroke stroke)` Sets the pen-style (`Stroke`) used to draw the range crosshair (if visible), and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeCrosshairValue(double value)` Sets the range crosshair value and, if the crosshair is visible, sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeCrosshairValue(double value, boolean notify)` Sets the range crosshair value and, if requested, sends a `PlotChangeEvent` to all registered listeners (but only if the crosshair is visible).
`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 used to draw the grid lines against the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeGridlineStroke(java.awt.Stroke stroke)` Sets the stroke used to draw the grid-lines against the range axis and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRangeGridlinesVisible(boolean visible)` Sets the flag that controls whether or not grid-lines are drawn against the range axis.
`void` `setRenderer(CategoryItemRenderer renderer)` Sets the renderer at index 0 (sometimes referred to as the "primary" renderer) and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRenderer(CategoryItemRenderer renderer, boolean notify)` Sets the renderer at index 0 (sometimes referred to as the "primary" renderer) and, if requested, sends a `PlotChangeEvent` to all registered listeners.
`void` `setRenderer(int index, CategoryItemRenderer renderer)` Sets the renderer at the specified index and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRenderer(int index, CategoryItemRenderer renderer, boolean notify)` Sets a renderer.
`void` `setRenderers(CategoryItemRenderer[] renderers)` Sets the renderers for this plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRowRenderingOrder(org.jfree.util.SortOrder order)` Sets the row order in which the items in each dataset should be rendered and sends a `PlotChangeEvent` to all registered listeners.
`void` `setWeight(int weight)` Sets the weight for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `zoom(double percent)` Zooms (in or out) on the plot's value axis.
`void` `zoomDomainAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, java.awt.geom.Point2D source)` This method does nothing, because `CategoryPlot` doesn't support zooming on the domain.
`void` `zoomDomainAxes(double factor, PlotRenderingInfo state, java.awt.geom.Point2D source)` This method does nothing, because `CategoryPlot` doesn't support zooming on the domain.
`void` `zoomDomainAxes(double factor, PlotRenderingInfo info, java.awt.geom.Point2D source, boolean useAnchor)` This method does nothing, because `CategoryPlot` doesn't support zooming on the domain.
`void` `zoomRangeAxes(double lowerPercent, double upperPercent, PlotRenderingInfo state, java.awt.geom.Point2D source)` Zooms in on the range axes.
`void` `zoomRangeAxes(double factor, PlotRenderingInfo state, 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/axes by the specified factor.

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

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

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

Field Detail

### DEFAULT_DOMAIN_GRIDLINES_VISIBLE

    public static final boolean DEFAULT_DOMAIN_GRIDLINES_VISIBLE

  The default visibility of the grid lines plotted against the domain axis.

  See Also:
    Constant Field Values

### DEFAULT_RANGE_GRIDLINES_VISIBLE

    public static final boolean DEFAULT_RANGE_GRIDLINES_VISIBLE

  The default visibility of the grid lines plotted against the range axis.

  See Also:
    Constant Field Values

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

    public static final java.awt.Font DEFAULT_VALUE_LABEL_FONT

  The default value label font.

### DEFAULT_CROSSHAIR_VISIBLE

    public static final boolean DEFAULT_CROSSHAIR_VISIBLE

  The default crosshair visibility.

  Since:
    1.0.5
  See Also:
    Constant Field Values

### DEFAULT_CROSSHAIR_STROKE

    public static final java.awt.Stroke DEFAULT_CROSSHAIR_STROKE

  The default crosshair stroke.

  Since:
    1.0.5

### DEFAULT_CROSSHAIR_PAINT

    public static final java.awt.Paint DEFAULT_CROSSHAIR_PAINT

  The default crosshair paint.

  Since:
    1.0.5

### localizationResources

    protected static java.util.ResourceBundle localizationResources

  The resourceBundle for the localization.

Constructor Detail

### CategoryPlot

    public CategoryPlot()

  Default constructor.

### CategoryPlot

    public CategoryPlot(CategoryDataset dataset,
                        CategoryAxis domainAxis,
                        ValueAxis rangeAxis,
                        CategoryItemRenderer 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 item renderer (`null` permitted).

Method Detail

### getPlotType

    public java.lang.String getPlotType()

  Returns a string describing the type of plot.

  Specified by:
    `getPlotType` in class `Plot`
  Returns:
    The type.

### getOrientation

    public PlotOrientation getOrientation()

  Returns the orientation of the plot.

  Specified by:
    `getOrientation` in interface `Zoomable`
  Returns:
    The orientation of the plot (never `null`).
  See Also:
    `setOrientation(PlotOrientation)`

### setOrientation

    public void setOrientation(PlotOrientation orientation)

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

  Parameters:
    `orientation` - the orientation (`null` not permitted).
  See Also:
    `getOrientation()`

### getAxisOffset

    public org.jfree.ui.RectangleInsets getAxisOffset()

  Returns the axis offset.

  Returns:
    The axis offset (never `null`).
  See Also:
    `setAxisOffset(RectangleInsets)`

### setAxisOffset

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

  Sets the axis offsets (gap between the data area and the axes) and sends a `PlotChangeEvent` to all registered listeners.

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

### getDomainAxis

    public CategoryAxis 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 (`null` permitted).
  See Also:
    `setDomainAxis(CategoryAxis)`

### getDomainAxis

    public CategoryAxis getDomainAxis(int index)

  Returns a domain axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The axis (`null` possible).
  See Also:
    `setDomainAxis(int, CategoryAxis)`

### setDomainAxis

    public void setDomainAxis(CategoryAxis axis)

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

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

### setDomainAxis

    public void setDomainAxis(int index,
                              CategoryAxis axis)

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

  Parameters:
    `index` - the axis index.
    `axis` - the axis (`null` permitted).
  See Also:
    `getDomainAxis(int)`

### setDomainAxis

    public void setDomainAxis(int index,
                              CategoryAxis axis,
                              boolean notify)

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

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

### setDomainAxes

    public void setDomainAxes(CategoryAxis[] axes)

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

  Parameters:
    `axes` - the axes (`null` not permitted).
  See Also:
    `setRangeAxes(ValueAxis[])`

### getDomainAxisIndex

    public int getDomainAxisIndex(CategoryAxis axis)

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

  Parameters:
    `axis` - the axis (`null` not permitted).
  Returns:
    The axis index.
  Since:
    1.0.3
  See Also:
    `getDomainAxis(int)`, `getRangeAxisIndex(ValueAxis)`

### getDomainAxisLocation

    public AxisLocation getDomainAxisLocation()

  Returns the domain axis location for the primary domain axis.

  Returns:
    The location (never `null`).
  See Also:
    `getRangeAxisLocation()`

### getDomainAxisLocation

    public AxisLocation getDomainAxisLocation(int index)

  Returns the location for a domain axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The location.
  See Also:
    `setDomainAxisLocation(int, AxisLocation)`

### setDomainAxisLocation

    public void setDomainAxisLocation(AxisLocation location)

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

  Parameters:
    `location` - the axis location (`null` not permitted).
  See Also:
    `getDomainAxisLocation()`, `setDomainAxisLocation(int, AxisLocation)`

### 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 axis location (`null` not permitted).
    `notify` - a flag that controls whether listeners are notified.

### 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.
  See Also:
    `getDomainAxisLocation(int)`, `setRangeAxisLocation(int, AxisLocation)`

### setDomainAxisLocation

    public void setDomainAxisLocation(int index,
                                      AxisLocation location,
                                      boolean notify)

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

  Parameters:
    `index` - the axis index.
    `location` - the location.
    `notify` - notify listeners?
  Since:
    1.0.5
  See Also:
    `getDomainAxisLocation(int)`, `setRangeAxisLocation(int, AxisLocation, boolean)`

### getDomainAxisEdge

    public org.jfree.ui.RectangleEdge getDomainAxisEdge()

  Returns the domain axis edge. This is derived from the axis location and the plot orientation.

  Returns:
    The edge (never `null`).

### getDomainAxisEdge

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

  Returns the edge for a domain axis.

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

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

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

### getRangeAxis

    public ValueAxis getRangeAxis(int index)

  Returns a range axis.

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

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

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

### setRangeAxis

    public void setRangeAxis(int index,
                             ValueAxis axis,
                             boolean notify)

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

  Parameters:
    `index` - the axis index.
    `axis` - the axis.
    `notify` - notify listeners?

### setRangeAxes

    public void setRangeAxes(ValueAxis[] axes)

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

  Parameters:
    `axes` - the axes (`null` not permitted).
  See Also:
    `setDomainAxes(CategoryAxis[])`

### getRangeAxisIndex

    public int getRangeAxisIndex(ValueAxis axis)

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

  Parameters:
    `axis` - the axis (`null` not permitted).
  Returns:
    The axis index.
  Since:
    1.0.7
  See Also:
    `getRangeAxis(int)`, `getDomainAxisIndex(CategoryAxis)`

### getRangeAxisLocation

    public AxisLocation getRangeAxisLocation()

  Returns the range axis location.

  Returns:
    The location (never `null`).

### getRangeAxisLocation

    public AxisLocation getRangeAxisLocation(int index)

  Returns the location for a range axis.

  Parameters:
    `index` - the axis index.
  Returns:
    The location.
  See Also:
    `setRangeAxisLocation(int, AxisLocation)`

### setRangeAxisLocation

    public void setRangeAxisLocation(AxisLocation location)

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

  Parameters:
    `location` - the location (`null` not permitted).
  See Also:
    `setRangeAxisLocation(AxisLocation, boolean)`, `setDomainAxisLocation(AxisLocation)`

### setRangeAxisLocation

    public void setRangeAxisLocation(AxisLocation location,
                                     boolean notify)

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

  Parameters:
    `location` - the location (`null` not permitted).
    `notify` - notify listeners?
  See Also:
    `setDomainAxisLocation(AxisLocation, boolean)`

### 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.
  See Also:
    `getRangeAxisLocation(int)`, `setRangeAxisLocation(int, AxisLocation, boolean)`

### setRangeAxisLocation

    public void setRangeAxisLocation(int index,
                                     AxisLocation location,
                                     boolean notify)

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

  Parameters:
    `index` - the axis index.
    `location` - the location.
    `notify` - notify listeners?
  See Also:
    `getRangeAxisLocation(int)`, `setDomainAxisLocation(int, AxisLocation, boolean)`

### getRangeAxisEdge

    public org.jfree.ui.RectangleEdge getRangeAxisEdge()

  Returns the edge where the primary range axis is located.

  Returns:
    The edge (never `null`).

### getRangeAxisEdge

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

  Returns the edge for a range axis.

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

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

### getDataset

    public CategoryDataset getDataset()

  Returns the primary dataset for the plot.

  Returns:
    The primary dataset (possibly `null`).
  See Also:
    `setDataset(CategoryDataset)`

### getDataset

    public CategoryDataset getDataset(int index)

  Returns the dataset at the given index.

  Parameters:
    `index` - the dataset index.
  Returns:
    The dataset (possibly `null`).
  See Also:
    `setDataset(int, CategoryDataset)`

### setDataset

    public void setDataset(CategoryDataset dataset)

  Sets the dataset for the plot, replacing the existing dataset, if there is one. This method also calls the `datasetChanged(DatasetChangeEvent)` method, which adjusts the axis ranges if necessary and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `dataset` - the dataset (`null` permitted).
  See Also:
    `getDataset()`

### setDataset

    public void setDataset(int index,
                           CategoryDataset dataset)

  Sets a dataset for the plot.

  Parameters:
    `index` - the dataset index.
    `dataset` - the dataset (`null` permitted).
  See Also:
    `getDataset(int)`

### getDatasetCount

    public int getDatasetCount()

  Returns the number of datasets.

  Returns:
    The number of datasets.
  Since:
    1.0.2

### 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 (zero-based).
  See Also:
    `getDomainAxisForDataset(int)`

### getDomainAxisForDataset

    public CategoryAxis getDomainAxisForDataset(int index)

  Returns the domain axis for a dataset. You can change the axis for a dataset using the `mapDatasetToDomainAxis(int, int)` method.

  Parameters:
    `index` - the dataset index.
  Returns:
    The domain axis.
  See Also:
    `mapDatasetToDomainAxis(int, int)`

### 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 (zero-based).
  See Also:
    `getRangeAxisForDataset(int)`

### getRangeAxisForDataset

    public ValueAxis getRangeAxisForDataset(int index)

  Returns the range axis for a dataset. You can change the axis for a dataset using the `mapDatasetToRangeAxis(int, int)` method.

  Parameters:
    `index` - the dataset index.
  Returns:
    The range axis.
  See Also:
    `mapDatasetToRangeAxis(int, int)`

### getRenderer

    public CategoryItemRenderer getRenderer()

  Returns a reference to the renderer for the plot.

  Returns:
    The renderer.
  See Also:
    `setRenderer(CategoryItemRenderer)`

### getRenderer

    public CategoryItemRenderer getRenderer(int index)

  Returns the renderer at the given index.

  Parameters:
    `index` - the renderer index.
  Returns:
    The renderer (possibly `null`).
  See Also:
    `setRenderer(int, CategoryItemRenderer)`

### setRenderer

    public void setRenderer(CategoryItemRenderer renderer)

  Sets the renderer at index 0 (sometimes referred to as the "primary" renderer) and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `renderer` - the renderer (`null` permitted.
  See Also:
    `getRenderer()`

### setRenderer

    public void setRenderer(CategoryItemRenderer renderer,
                            boolean notify)

  Sets the renderer at index 0 (sometimes referred to as the "primary" renderer) and, if requested, sends a `PlotChangeEvent` to all registered listeners.

  You can set the renderer to `null`, but this is not recommended because:

  - no data will be displayed;
  - the plot background will not be painted;

  Parameters:
    `renderer` - the renderer (`null` permitted).
    `notify` - notify listeners?
  See Also:
    `getRenderer()`

### setRenderer

    public void setRenderer(int index,
                            CategoryItemRenderer renderer)

  Sets the renderer at the specified index and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `index` - the index.
    `renderer` - the renderer (`null` permitted).
  See Also:
    `getRenderer(int)`, `setRenderer(int, CategoryItemRenderer, boolean)`

### setRenderer

    public void setRenderer(int index,
                            CategoryItemRenderer renderer,
                            boolean notify)

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

  Parameters:
    `index` - the index.
    `renderer` - the renderer (`null` permitted).
    `notify` - notify listeners?
  See Also:
    `getRenderer(int)`

### setRenderers

    public void setRenderers(CategoryItemRenderer[] renderers)

  Sets the renderers for this plot and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `renderers` - the renderers.

### getRendererForDataset

    public CategoryItemRenderer getRendererForDataset(CategoryDataset dataset)

  Returns the renderer for the specified dataset. If the dataset doesn't belong to the plot, this method will return `null`.

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

### getIndexOf

    public int getIndexOf(CategoryItemRenderer 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.

### getDatasetRenderingOrder

    public DatasetRenderingOrder getDatasetRenderingOrder()

  Returns the dataset rendering order.

  Returns:
    The order (never `null`).
  See Also:
    `setDatasetRenderingOrder(DatasetRenderingOrder)`

### 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).
  See Also:
    `getDatasetRenderingOrder()`

### getColumnRenderingOrder

    public org.jfree.util.SortOrder getColumnRenderingOrder()

  Returns the order in which the columns are rendered. The default value is `SortOrder.ASCENDING`.

  Returns:
    The column rendering order (never `null</code).<DT>See Also:`
    `setColumnRenderingOrder(SortOrder)`

### setColumnRenderingOrder

    public void setColumnRenderingOrder(org.jfree.util.SortOrder order)

  Sets the column order in which the items in each dataset should be rendered and sends a `PlotChangeEvent` to all registered listeners. Note that this affects the order in which items are drawn, NOT their position in the chart.

  Parameters:
    `order` - the order (`null` not permitted).
  See Also:
    `getColumnRenderingOrder()`, `setRowRenderingOrder(SortOrder)`

### getRowRenderingOrder

    public org.jfree.util.SortOrder getRowRenderingOrder()

  Returns the order in which the rows should be rendered. The default value is `SortOrder.ASCENDING`.

  Returns:
    The order (never `null`).
  See Also:
    `setRowRenderingOrder(SortOrder)`

### setRowRenderingOrder

    public void setRowRenderingOrder(org.jfree.util.SortOrder order)

  Sets the row order in which the items in each dataset should be rendered and sends a `PlotChangeEvent` to all registered listeners. Note that this affects the order in which items are drawn, NOT their position in the chart.

  Parameters:
    `order` - the order (`null` not permitted).
  See Also:
    `getRowRenderingOrder()`, `setColumnRenderingOrder(SortOrder)`

### isDomainGridlinesVisible

    public boolean isDomainGridlinesVisible()

  Returns the flag that controls whether the domain grid-lines are visible.

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

### setDomainGridlinesVisible

    public void setDomainGridlinesVisible(boolean visible)

  Sets the flag that controls whether or not grid-lines are drawn against the domain axis.

  If the flag value changes, a `PlotChangeEvent` is sent to all registered listeners.

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

### getDomainGridlinePosition

    public CategoryAnchor getDomainGridlinePosition()

  Returns the position used for the domain gridlines.

  Returns:
    The gridline position (never `null`).
  See Also:
    `setDomainGridlinePosition(CategoryAnchor)`

### setDomainGridlinePosition

    public void setDomainGridlinePosition(CategoryAnchor position)

  Sets the position used for the domain gridlines and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position (`null` not permitted).
  See Also:
    `getDomainGridlinePosition()`

### getDomainGridlineStroke

    public java.awt.Stroke getDomainGridlineStroke()

  Returns the stroke used to draw grid-lines against the domain axis.

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

### setDomainGridlineStroke

    public void setDomainGridlineStroke(java.awt.Stroke stroke)

  Sets the stroke used to draw grid-lines 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 used to draw grid-lines against the domain axis.

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

### setDomainGridlinePaint

    public void setDomainGridlinePaint(java.awt.Paint paint)

  Sets the paint used to draw the grid-lines (if any) 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 the flag that controls whether the range grid-lines are visible.

  Returns:
    The flag.
  See Also:
    `setRangeGridlinesVisible(boolean)`

### setRangeGridlinesVisible

    public void setRangeGridlinesVisible(boolean visible)

  Sets the flag that controls whether or not grid-lines are drawn against the range axis. If the flag changes value, 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 used to draw the grid-lines against the range axis.

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

### setRangeGridlineStroke

    public void setRangeGridlineStroke(java.awt.Stroke stroke)

  Sets the stroke used to draw the grid-lines against the range axis and sends a `PlotChangeEvent` to all registered listeners.

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

### getRangeGridlinePaint

    public java.awt.Paint getRangeGridlinePaint()

  Returns the paint used to draw the grid-lines against the range axis.

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

### setRangeGridlinePaint

    public void setRangeGridlinePaint(java.awt.Paint paint)

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

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

### getFixedLegendItems

    public LegendItemCollection getFixedLegendItems()

  Returns the fixed legend items, if any.

  Returns:
    The legend items (possibly `null`).
  See Also:
    `setFixedLegendItems(LegendItemCollection)`

### 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).
  See Also:
    `getFixedLegendItems()`

### getLegendItems

    public LegendItemCollection getLegendItems()

  Returns the legend items for the plot. By default, this method creates a legend item for each series in each of the datasets. You can change this behaviour by overriding this method.

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

### handleClick

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

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

  Overrides:
    `handleClick` in class `Plot`
  Parameters:
    `x` - x-coordinate of the click (in Java2D space).
    `y` - y-coordinate of the click (in Java2D space).
    `info` - information about the plot's dimensions.

### zoom

    public void zoom(double percent)

  Zooms (in or out) on the plot's value axis.

  If the value 0.0 is passed in as the zoom percent, the auto-range calculation for the axis is restored (which sets the range to include the minimum and maximum data values, thus displaying all the data).

  Overrides:
    `zoom` in class `Plot`
  Parameters:
    `percent` - the zoom amount.

### datasetChanged

    public void datasetChanged(DatasetChangeEvent event)

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

  The range axis bounds will be recalculated 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.

### addDomainMarker

    public void addDomainMarker(CategoryMarker marker)

  Adds a marker for display (in the foreground) against 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 domain axis, however this is entirely up to the renderer.

  Parameters:
    `marker` - the marker (`null` not permitted).
  See Also:
    `removeDomainMarker(Marker)`

### addDomainMarker

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

  Adds a marker for display against 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 domain axis, however this is entirely up to the renderer.

  Parameters:
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (foreground or background) (`null` not permitted).
  See Also:
    `removeDomainMarker(Marker, Layer)`

### addDomainMarker

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

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

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

  Parameters:
    `index` - the renderer index.
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (`null` not permitted).
  See Also:
    `removeDomainMarker(int, Marker, Layer)`

### addDomainMarker

    public void addDomainMarker(int index,
                                CategoryMarker marker,
                                org.jfree.ui.Layer layer,
                                boolean notify)

  Adds a marker for display by a particular renderer and, if requested, sends a `PlotChangeEvent` to all registered listeners.

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

  Parameters:
    `index` - the renderer index.
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (`null` not permitted).
    `notify` - notify listeners?
  Since:
    1.0.10
  See Also:
    `removeDomainMarker(int, Marker, Layer, boolean)`

### clearDomainMarkers

    public void clearDomainMarkers()

  Clears all the domain markers for the plot and sends a `PlotChangeEvent` to all registered listeners.

  See Also:
    `clearRangeMarkers()`

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

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

### clearDomainMarkers

    public void clearDomainMarkers(int index)

  Clears all the domain markers for the specified renderer.

  Parameters:
    `index` - the renderer index.
  See Also:
    `clearRangeMarkers(int)`

### removeDomainMarker

    public boolean removeDomainMarker(Marker marker)

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

  Parameters:
    `marker` - the marker.
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.7

### removeDomainMarker

    public boolean removeDomainMarker(Marker marker,
                                      org.jfree.ui.Layer layer)

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

  Parameters:
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (foreground or background).
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.7

### removeDomainMarker

    public boolean removeDomainMarker(int index,
                                      Marker marker,
                                      org.jfree.ui.Layer layer)

  Removes a marker for a specific dataset/renderer and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `index` - the dataset/renderer index.
    `marker` - the marker.
    `layer` - the layer (foreground or background).
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.7

### removeDomainMarker

    public boolean removeDomainMarker(int index,
                                      Marker marker,
                                      org.jfree.ui.Layer layer,
                                      boolean notify)

  Removes a marker for a specific dataset/renderer and, if requested, sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `index` - the dataset/renderer index.
    `marker` - the marker.
    `layer` - the layer (foreground or background).
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.10

### addRangeMarker

    public void addRangeMarker(Marker marker)

  Adds a marker for display (in the foreground) against 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).
  See Also:
    `removeRangeMarker(Marker)`

### addRangeMarker

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

  Adds a marker for display against 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).
    `layer` - the layer (foreground or background) (`null` not permitted).
  See Also:
    `removeRangeMarker(Marker, Layer)`

### addRangeMarker

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

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

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

  Parameters:
    `index` - the renderer index.
    `marker` - the marker.
    `layer` - the layer.
  See Also:
    `removeRangeMarker(int, Marker, Layer)`

### addRangeMarker

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

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

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

  Parameters:
    `index` - the renderer index.
    `marker` - the marker.
    `layer` - the layer.
    `notify` - notify listeners?
  Since:
    1.0.10
  See Also:
    `removeRangeMarker(int, Marker, Layer, boolean)`

### clearRangeMarkers

    public void clearRangeMarkers()

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

  See Also:
    `clearDomainMarkers()`

### 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.
  See Also:
    `getRangeMarkers(int, Layer)`

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

### clearRangeMarkers

    public void clearRangeMarkers(int index)

  Clears all the range markers for the specified renderer.

  Parameters:
    `index` - the renderer index.
  See Also:
    `clearDomainMarkers(int)`

### removeRangeMarker

    public boolean removeRangeMarker(Marker marker)

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

  Parameters:
    `marker` - the marker.
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.7
  See Also:
    `addRangeMarker(Marker)`

### removeRangeMarker

    public boolean removeRangeMarker(Marker marker,
                                     org.jfree.ui.Layer layer)

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

  Parameters:
    `marker` - the marker (`null` not permitted).
    `layer` - the layer (foreground or background).
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.7
  See Also:
    `addRangeMarker(Marker, Layer)`

### removeRangeMarker

    public boolean removeRangeMarker(int index,
                                     Marker marker,
                                     org.jfree.ui.Layer layer)

  Removes a marker for a specific dataset/renderer and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `index` - the dataset/renderer index.
    `marker` - the marker.
    `layer` - the layer (foreground or background).
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.7
  See Also:
    `addRangeMarker(int, Marker, Layer)`

### removeRangeMarker

    public boolean removeRangeMarker(int index,
                                     Marker marker,
                                     org.jfree.ui.Layer layer,
                                     boolean notify)

  Removes a marker for a specific dataset/renderer and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `index` - the dataset/renderer index.
    `marker` - the marker.
    `layer` - the layer (foreground or background).
    `notify` - notify listeners.
  Returns:
    A boolean indicating whether or not the marker was actually removed.
  Since:
    1.0.10
  See Also:
    `addRangeMarker(int, Marker, Layer, boolean)`

### isRangeCrosshairVisible

    public boolean isRangeCrosshairVisible()

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

  Returns:
    The flag.
  See Also:
    `setRangeCrosshairVisible(boolean)`

### 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.
  See Also:
    `isRangeCrosshairVisible()`

### isRangeCrosshairLockedOnData

    public boolean isRangeCrosshairLockedOnData()

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

  Returns:
    The flag.
  See Also:
    `setRangeCrosshairLockedOnData(boolean)`

### setRangeCrosshairLockedOnData

    public void setRangeCrosshairLockedOnData(boolean flag)

  Sets the flag indicating whether or not the range crosshair should "lock-on" to actual data values, and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `flag` - the flag.
  See Also:
    `isRangeCrosshairLockedOnData()`

### getRangeCrosshairValue

    public double getRangeCrosshairValue()

  Returns the range crosshair value.

  Returns:
    The value.
  See Also:
    `setRangeCrosshairValue(double)`

### setRangeCrosshairValue

    public void setRangeCrosshairValue(double value)

  Sets the range crosshair value and, if the crosshair is visible, sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `value` - the new value.
  See Also:
    `getRangeCrosshairValue()`

### setRangeCrosshairValue

    public void setRangeCrosshairValue(double value,
                                       boolean notify)

  Sets the range crosshair value and, if requested, sends a `PlotChangeEvent` to all registered listeners (but only if the crosshair is visible).

  Parameters:
    `value` - the new value.
    `notify` - a flag that controls whether or not listeners are notified.
  See Also:
    `getRangeCrosshairValue()`

### getRangeCrosshairStroke

    public java.awt.Stroke getRangeCrosshairStroke()

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

  Returns:
    The crosshair stroke (never `null`).
  See Also:
    `setRangeCrosshairStroke(Stroke)`, `isRangeCrosshairVisible()`, `getRangeCrosshairPaint()`

### setRangeCrosshairStroke

    public void setRangeCrosshairStroke(java.awt.Stroke stroke)

  Sets the pen-style (`Stroke`) used to draw the range crosshair (if visible), and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `stroke` - the new crosshair stroke (`null` not permitted).
  See Also:
    `getRangeCrosshairStroke()`

### getRangeCrosshairPaint

    public java.awt.Paint getRangeCrosshairPaint()

  Returns the paint used to draw the range crosshair.

  Returns:
    The paint (never `null`).
  See Also:
    `setRangeCrosshairPaint(Paint)`, `isRangeCrosshairVisible()`, `getRangeCrosshairStroke()`

### setRangeCrosshairPaint

    public void setRangeCrosshairPaint(java.awt.Paint paint)

  Sets the paint used to draw the range crosshair (if visible) and sends a `PlotChangeEvent` to all registered listeners.

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

### getAnnotations

    public java.util.List getAnnotations()

  Returns the list of annotations.

  Returns:
    The list of annotations (never `null`).
  See Also:
    `addAnnotation(CategoryAnnotation)`, `clearAnnotations()`

### addAnnotation

    public void addAnnotation(CategoryAnnotation annotation)

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

  Parameters:
    `annotation` - the annotation (`null` not permitted).
  See Also:
    `removeAnnotation(CategoryAnnotation)`

### addAnnotation

    public void addAnnotation(CategoryAnnotation annotation,
                              boolean notify)

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

  Parameters:
    `annotation` - the annotation (`null` not permitted).
    `notify` - notify listeners?
  Since:
    1.0.10

### removeAnnotation

    public boolean removeAnnotation(CategoryAnnotation 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 was removed).
  See Also:
    `addAnnotation(CategoryAnnotation)`

### removeAnnotation

    public boolean removeAnnotation(CategoryAnnotation annotation,
                                    boolean notify)

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

  Parameters:
    `annotation` - the annotation (`null` not permitted).
    `notify` - notify listeners?
  Returns:
    A boolean (indicates whether or not the annotation was removed).
  Since:
    1.0.10

### clearAnnotations

    public void clearAnnotations()

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

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

### calculateAxisSpace

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

  Calculates the space required for the axes.

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

### draw

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

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

  At your option, you may supply an instance of `PlotRenderingInfo`. If you do, it will be populated with information about the drawing, including various plot dimensions and tooltip info.

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

### drawBackground

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

  Draws the plot background (the background color and/or image).

  This method will be called during the chart drawing process and is declared public so that it can be accessed by the renderers used by certain subclasses. You shouldn't need to call this method directly.

  Overrides:
    `drawBackground` in class `Plot`
  Parameters:
    `g2` - the graphics device.
    `area` - the area within which the plot should be drawn.

### 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 plot's axes.

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

### render

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

  Draws a representation of a dataset within the dataArea region using the appropriate renderer.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the region in which the data is to be drawn.
    `index` - the dataset and renderer index.
    `info` - an optional object for collection dimension information.
  Returns:
    A boolean that indicates whether or not real data was found.

### drawDomainGridlines

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

  Draws the gridlines for the plot.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the area inside the axes.
  See Also:
    `drawRangeGridlines(Graphics2D, Rectangle2D, List)`

### drawRangeGridlines

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

  Draws the gridlines for the plot.

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the area inside the axes.
    `ticks` - the ticks.
  See Also:
    `drawDomainGridlines(Graphics2D, Rectangle2D)`

### drawAnnotations

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

  Draws the annotations.

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

### 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).
  See Also:
    `drawRangeMarkers(Graphics2D, Rectangle2D, int, Layer)`

### 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 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).
  See Also:
    `drawDomainMarkers(Graphics2D, Rectangle2D, int, Layer)`

### drawRangeLine

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

  Utility method for drawing a line perpendicular to the range axis (used for crosshairs).

  Parameters:
    `g2` - the graphics device.
    `dataArea` - the area defined by the axes.
    `value` - the data value.
    `stroke` - the line stroke (`null` not permitted).
    `paint` - the line paint (`null` not permitted).

### drawRangeCrosshair

    protected void drawRangeCrosshair(java.awt.Graphics2D g2,
                                      java.awt.geom.Rectangle2D dataArea,
                                      PlotOrientation orientation,
                                      double value,
                                      ValueAxis axis,
                                      java.awt.Stroke stroke,
                                      java.awt.Paint paint)

  Draws a range crosshair.

  Parameters:
    `g2` - the graphics target.
    `dataArea` - the data area.
    `orientation` - the plot orientation.
    `value` - the crosshair value.
    `axis` - the axis against which the value is measured.
    `stroke` - the stroke used to draw the crosshair line.
    `paint` - the paint used to draw the crosshair line.
  Since:
    1.0.5

### getDataRange

    public Range getDataRange(ValueAxis axis)

  Returns the range of data values that will be plotted against the range axis. If the dataset is `null`, this method returns `null`.

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

### getWeight

    public int getWeight()

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

  Returns:
    The weight.
  See Also:
    `setWeight(int)`

### setWeight

    public void setWeight(int weight)

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

  Parameters:
    `weight` - the weight.
  See Also:
    `getWeight()`

### getFixedDomainAxisSpace

    public AxisSpace getFixedDomainAxisSpace()

  Returns the fixed domain axis space.

  Returns:
    The fixed domain axis space (possibly `null`).
  See Also:
    `setFixedDomainAxisSpace(AxisSpace)`

### setFixedDomainAxisSpace

    public void setFixedDomainAxisSpace(AxisSpace space)

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

  Parameters:
    `space` - the space (`null` permitted).
  See Also:
    `getFixedDomainAxisSpace()`

### setFixedDomainAxisSpace

    public void setFixedDomainAxisSpace(AxisSpace space,
                                        boolean notify)

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

  Parameters:
    `space` - the space (`null` permitted).
    `notify` - notify listeners?
  Since:
    1.0.7
  See Also:
    `getFixedDomainAxisSpace()`

### getFixedRangeAxisSpace

    public AxisSpace getFixedRangeAxisSpace()

  Returns the fixed range axis space.

  Returns:
    The fixed range axis space (possibly `null`).
  See Also:
    `setFixedRangeAxisSpace(AxisSpace)`

### setFixedRangeAxisSpace

    public void setFixedRangeAxisSpace(AxisSpace space)

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

  Parameters:
    `space` - the space (`null` permitted).
  See Also:
    `getFixedRangeAxisSpace()`

### setFixedRangeAxisSpace

    public void setFixedRangeAxisSpace(AxisSpace space,
                                       boolean notify)

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

  Parameters:
    `space` - the space (`null` permitted).
    `notify` - notify listeners?
  Since:
    1.0.7
  See Also:
    `getFixedRangeAxisSpace()`

### getCategories

    public java.util.List getCategories()

  Returns a list of the categories in the plot's primary dataset.

  Returns:
    A list of the categories in the plot's primary dataset.
  See Also:
    `getCategoriesForAxis(CategoryAxis)`

### getCategoriesForAxis

    public java.util.List getCategoriesForAxis(CategoryAxis axis)

  Returns a list of the categories that should be displayed for the specified axis.

  Parameters:
    `axis` - the axis (`null` not permitted)
  Returns:
    The categories.
  Since:
    1.0.3

### getDrawSharedDomainAxis

    public boolean getDrawSharedDomainAxis()

  Returns the flag that controls whether or not the shared domain axis is drawn for each subplot.

  Returns:
    A boolean.
  See Also:
    `setDrawSharedDomainAxis(boolean)`

### setDrawSharedDomainAxis

    public void setDrawSharedDomainAxis(boolean draw)

  Sets the flag that controls whether the shared domain axis is drawn when this plot is being used as a subplot.

  Parameters:
    `draw` - a boolean.
  See Also:
    `getDrawSharedDomainAxis()`

### isDomainZoomable

    public boolean isDomainZoomable()

  Returns `false` to indicate that the domain axes are not zoomable.

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

### isRangeZoomable

    public boolean isRangeZoomable()

  Returns `true` to indicate that the range axes are zoomable.

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

### zoomDomainAxes

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

  This method does nothing, because `CategoryPlot` doesn't support zooming on the domain.

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

### zoomDomainAxes

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

  This method does nothing, because `CategoryPlot` doesn't support zooming on the domain.

  Specified by:
    `zoomDomainAxes` in interface `Zoomable`
  Parameters:
    `lowerPercent` - the lower bound.
    `upperPercent` - the upper bound.
    `state` - the plot state.
    `source` - the source point (in Java2D space) for the zoom.
  See Also:
    `Zoomable.zoomRangeAxes(double, double, PlotRenderingInfo, Point2D)`

### zoomDomainAxes

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

  This method does nothing, because `CategoryPlot` doesn't support zooming on the domain.

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

### zoomRangeAxes

    public void zoomRangeAxes(double factor,
                              PlotRenderingInfo state,
                              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.
    `state` - the plot state.
    `source` - the source point (in Java2D space) for the zoom.
  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/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.
    `useAnchor` - a flag that controls whether or not the source point is used for the zoom anchor.
  Since:
    1.0.7
  See Also:
    `zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)`

### zoomRangeAxes

    public void zoomRangeAxes(double lowerPercent,
                              double upperPercent,
                              PlotRenderingInfo state,
                              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.
    `state` - the plot state.
    `source` - the source point (in Java2D space) for the zoom.
  See Also:
    `Zoomable.zoomDomainAxes(double, double, PlotRenderingInfo, Point2D)`

### getAnchorValue

    public double getAnchorValue()

  Returns the anchor value.

  Returns:
    The anchor value.
  See Also:
    `setAnchorValue(double)`

### setAnchorValue

    public void setAnchorValue(double value)

  Sets the anchor value and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `value` - the anchor value.
  See Also:
    `getAnchorValue()`

### setAnchorValue

    public void setAnchorValue(double value,
                               boolean notify)

  Sets the anchor value and, if requested, sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `value` - the value.
    `notify` - notify listeners?
  See Also:
    `getAnchorValue()`

### equals

    public boolean equals(java.lang.Object obj)

  Tests the plot for equality with an arbitrary object.

  Overrides:
    `equals` in class `Plot`
  Parameters:
    `obj` - the object to test against (`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 the cloning is not supported.