org.jfree.chart.plot

## Class Plot

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

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.EventListener, AnnotationChangeListener, AxisChangeListener, MarkerChangeListener, LegendItemSource, DatasetChangeListener, PublicCloneable
  Direct Known Subclasses:
    FastScatterPlot, XYPlot

      public abstract class Plot
      extends java.lang.Object
      implements AxisChangeListener, DatasetChangeListener, AnnotationChangeListener, MarkerChangeListener, LegendItemSource, PublicCloneable, java.lang.Cloneable, java.io.Serializable

  The base class for all plots in JFreeChart. The `JFreeChart` class delegates the drawing of axes and data to the plot. This base class provides facilities common to most plot types.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static float` | `DEFAULT_BACKGROUND_ALPHA` The default background alpha transparency.
    `static java.awt.Paint` | `DEFAULT_BACKGROUND_PAINT` The default background color.
    `static float` | `DEFAULT_FOREGROUND_ALPHA` The default foreground alpha transparency.
    `static RectangleInsets` | `DEFAULT_INSETS` The default insets.
    `static java.awt.Shape` | `DEFAULT_LEGEND_ITEM_BOX` A default box shape for legend items.
    `static java.awt.Shape` | `DEFAULT_LEGEND_ITEM_CIRCLE` A default circle shape for legend items.
    `static java.awt.Paint` | `DEFAULT_OUTLINE_PAINT` The default outline color.
    `static java.awt.Stroke` | `DEFAULT_OUTLINE_STROKE` The default outline stroke.
    `static int` | `MINIMUM_HEIGHT_TO_DRAW` The minimum height at which the plot should be drawn.
    `static int` | `MINIMUM_WIDTH_TO_DRAW` The minimum width at which the plot should be drawn.
    `static java.lang.Number` | `ZERO` Useful constant representing zero.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Plot()` Creates a new plot.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addChangeListener(PlotChangeListener listener)` Registers an object for notification of changes to the plot.
    `void` | `annotationChanged(AnnotationChangeEvent event)` Receives notification of a change to an `Annotation` added to this plot.
    `void` | `axisChanged(AxisChangeEvent event)` Receives notification of a change to one of the plot's axes.
    `java.lang.Object` | `clone()` Creates a clone of the plot.
    `protected void` | `createAndAddEntity(java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo plotState, java.lang.String toolTip, java.lang.String urlText)` Creates a plot entity that contains a reference to the plot and the data area as shape.
    `void` | `datasetChanged(DatasetChangeEvent event)` Receives notification of a change to the plot's dataset.
    `abstract 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.
    `void` | `drawBackground(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the plot background (the background color and/or image).
    `void` | `drawBackgroundImage(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the background image (if there is one) aligned within the specified area.
    `protected void` | `drawNoDataMessage(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws a message to state that there is no data to plot.
    `void` | `drawOutline(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the plot outline.
    `boolean` | `equals(java.lang.Object obj)` Tests this plot for equality with another object.
    `protected void` | `fillBackground(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Fills the specified area with the background paint.
    `protected void` | `fillBackground(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, PlotOrientation orientation)` Fills the specified area with the background paint.
    `protected void` | `fireChangeEvent()` Sends a `PlotChangeEvent` to all registered listeners.
    `float` | `getBackgroundAlpha()` Returns the alpha transparency of the plot area background.
    `java.awt.Image` | `getBackgroundImage()` Returns the background image that is used to fill the plot's background area.
    `int` | `getBackgroundImageAlignment()` Returns the background image alignment.
    `float` | `getBackgroundImageAlpha()` Returns the alpha transparency used to draw the background image.
    `java.awt.Paint` | `getBackgroundPaint()` Returns the background color of the plot area.
    `DatasetGroup` | `getDatasetGroup()` Returns the dataset group for the plot (not currently used).
    `DrawingSupplier` | `getDrawingSupplier()` Returns the drawing supplier for the plot.
    `float` | `getForegroundAlpha()` Returns the alpha-transparency for the plot foreground.
    `RectangleInsets` | `getInsets()` Returns the insets for the plot area.
    `LegendItemCollection` | `getLegendItems()` Returns the legend items for the plot.
    `java.lang.String` | `getNoDataMessage()` Returns the string that is displayed when the dataset is empty or `null`.
    `java.awt.Font` | `getNoDataMessageFont()` Returns the font used to display the 'no data' message.
    `java.awt.Paint` | `getNoDataMessagePaint()` Returns the paint used to display the 'no data' message.
    `java.awt.Paint` | `getOutlinePaint()` Returns the color used to draw the outline of the plot area.
    `java.awt.Stroke` | `getOutlineStroke()` Returns the stroke used to outline the plot area.
    `Plot` | `getParent()` Returns the parent plot (or `null` if this plot is not part of a combined plot).
    `abstract java.lang.String` | `getPlotType()` Returns a short string describing the plot type.
    `protected double` | `getRectX(double x, double w1, double w2, RectangleEdge edge)` Adjusts the supplied x-value.
    `protected double` | `getRectY(double y, double h1, double h2, RectangleEdge edge)` Adjusts the supplied y-value.
    `Plot` | `getRootPlot()` Returns the root plot.
    `void` | `handleClick(int x, int y, PlotRenderingInfo info)` Handles a 'click' on the plot.
    `boolean` | `isNotify()` Returns a flag that controls whether or not change events are sent to registered listeners.
    `boolean` | `isOutlineVisible()` Returns the flag that controls whether or not the plot outline is drawn.
    `boolean` | `isSubplot()` Returns `true` if this plot is part of a combined plot structure (that is, `getParent()` returns a non-`null` value), and `false` otherwise.
    `void` | `markerChanged(MarkerChangeEvent event)` Receives notification of a change to a marker that is assigned to the plot.
    `void` | `notifyListeners(PlotChangeEvent event)` Notifies all registered listeners that the plot has been modified.
    `void` | `removeChangeListener(PlotChangeListener listener)` Unregisters an object for notification of changes to the plot.
    `static RectangleEdge` | `resolveDomainAxisLocation(AxisLocation location, PlotOrientation orientation)` Resolves a domain axis location for a given plot orientation.
    `static RectangleEdge` | `resolveRangeAxisLocation(AxisLocation location, PlotOrientation orientation)` Resolves a range axis location for a given plot orientation.
    `void` | `setBackgroundAlpha(float alpha)` Sets the alpha transparency of the plot area background, and notifies registered listeners that the plot has been modified.
    `void` | `setBackgroundImage(java.awt.Image image)` Sets the background image for the plot and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setBackgroundImageAlignment(int alignment)` Sets the alignment for the background image and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setBackgroundImageAlpha(float alpha)` Sets the alpha transparency used when drawing the background image.
    `void` | `setBackgroundPaint(java.awt.Paint paint)` Sets the background color of the plot area and sends a `PlotChangeEvent` to all registered listeners.
    `protected void` | `setDatasetGroup(DatasetGroup group)` Sets the dataset group (not currently used).
    `void` | `setDrawingSupplier(DrawingSupplier supplier)` Sets the drawing supplier for the plot and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setDrawingSupplier(DrawingSupplier supplier, boolean notify)` Sets the drawing supplier for the plot and, if requested, sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setForegroundAlpha(float alpha)` Sets the alpha-transparency for the plot and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setInsets(RectangleInsets insets)` Sets the insets for the plot and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setInsets(RectangleInsets insets, boolean notify)` Sets the insets for the plot and, if requested, and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setNoDataMessage(java.lang.String message)` Sets the message that is displayed when the dataset is empty or `null`, and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setNoDataMessageFont(java.awt.Font font)` Sets the font used to display the 'no data' message and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setNoDataMessagePaint(java.awt.Paint paint)` Sets the paint used to display the 'no data' message and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setNotify(boolean notify)` Sets a flag that controls whether or not listeners receive `PlotChangeEvent` notifications.
    `void` | `setOutlinePaint(java.awt.Paint paint)` Sets the paint used to draw the outline of the plot area and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setOutlineStroke(java.awt.Stroke stroke)` Sets the stroke used to outline the plot area and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setOutlineVisible(boolean visible)` Sets the flag that controls whether or not the plot's outline is drawn, and sends a `PlotChangeEvent` to all registered listeners.
    `void` | `setParent(Plot parent)` Sets the parent plot.
    `void` | `zoom(double percent)` Performs a zoom on the plot.

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ZERO

          public static final java.lang.Number ZERO

      Useful constant representing zero.

    - #### DEFAULT_INSETS

          public static final RectangleInsets DEFAULT_INSETS

      The default insets.

    - #### DEFAULT_OUTLINE_STROKE

          public static final java.awt.Stroke DEFAULT_OUTLINE_STROKE

      The default outline stroke.

    - #### DEFAULT_OUTLINE_PAINT

          public static final java.awt.Paint DEFAULT_OUTLINE_PAINT

      The default outline color.

    - #### DEFAULT_FOREGROUND_ALPHA

          public static final float DEFAULT_FOREGROUND_ALPHA

      The default foreground alpha transparency.
      See Also:
        Constant Field Values

    - #### DEFAULT_BACKGROUND_ALPHA

          public static final float DEFAULT_BACKGROUND_ALPHA

      The default background alpha transparency.
      See Also:
        Constant Field Values

    - #### DEFAULT_BACKGROUND_PAINT

          public static final java.awt.Paint DEFAULT_BACKGROUND_PAINT

      The default background color.

    - #### MINIMUM_WIDTH_TO_DRAW

          public static final int MINIMUM_WIDTH_TO_DRAW

      The minimum width at which the plot should be drawn.
      See Also:
        Constant Field Values

    - #### MINIMUM_HEIGHT_TO_DRAW

          public static final int MINIMUM_HEIGHT_TO_DRAW

      The minimum height at which the plot should be drawn.
      See Also:
        Constant Field Values

    - #### DEFAULT_LEGEND_ITEM_BOX

          public static final java.awt.Shape DEFAULT_LEGEND_ITEM_BOX

      A default box shape for legend items.

    - #### DEFAULT_LEGEND_ITEM_CIRCLE

          public static final java.awt.Shape DEFAULT_LEGEND_ITEM_CIRCLE

      A default circle shape for legend items.

  - ### Constructor Detail

    - #### Plot

          protected Plot()

      Creates a new plot.

  - ### Method Detail

    - #### getDatasetGroup

          public DatasetGroup getDatasetGroup()

      Returns the dataset group for the plot (not currently used).
      Returns:
        The dataset group.
      See Also:
        `setDatasetGroup(DatasetGroup)`

    - #### setDatasetGroup

          protected void setDatasetGroup(DatasetGroup group)

      Sets the dataset group (not currently used).
      Parameters:
        `group` - the dataset group (`null` permitted).
      See Also:
        `getDatasetGroup()`

    - #### getNoDataMessage

          public java.lang.String getNoDataMessage()

      Returns the string that is displayed when the dataset is empty or `null`.
      Returns:
        The 'no data' message (`null` possible).
      See Also:
        `setNoDataMessage(String)`, `getNoDataMessageFont()`, `getNoDataMessagePaint()`

    - #### setNoDataMessage

          public void setNoDataMessage(java.lang.String message)

      Sets the message that is displayed when the dataset is empty or `null`, and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `message` - the message (`null` permitted).
      See Also:
        `getNoDataMessage()`

    - #### getNoDataMessageFont

          public java.awt.Font getNoDataMessageFont()

      Returns the font used to display the 'no data' message.
      Returns:
        The font (never `null`).
      See Also:
        `setNoDataMessageFont(Font)`, `getNoDataMessage()`

    - #### setNoDataMessageFont

          public void setNoDataMessageFont(java.awt.Font font)

      Sets the font used to display the 'no data' message and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `font` - the font (`null` not permitted).
      See Also:
        `getNoDataMessageFont()`

    - #### getNoDataMessagePaint

          public java.awt.Paint getNoDataMessagePaint()

      Returns the paint used to display the 'no data' message.
      Returns:
        The paint (never `null`).
      See Also:
        `setNoDataMessagePaint(Paint)`, `getNoDataMessage()`

    - #### setNoDataMessagePaint

          public void setNoDataMessagePaint(java.awt.Paint paint)

      Sets the paint used to display the 'no data' message and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `paint` - the paint (`null` not permitted).
      See Also:
        `getNoDataMessagePaint()`

    - #### getPlotType

          public abstract java.lang.String getPlotType()

      Returns a short string describing the plot type.

      Note: this gets used in the chart property editing user interface, but there needs to be a better mechanism for identifying the plot type.

      Returns:
        A short string describing the plot type (never `null`).

    - #### getParent

          public Plot getParent()

      Returns the parent plot (or `null` if this plot is not part of a combined plot).
      Returns:
        The parent plot.
      See Also:
        `setParent(Plot)`, `getRootPlot()`

    - #### setParent

          public void setParent(Plot parent)

      Sets the parent plot. This method is intended for internal use, you shouldn't need to call it directly.
      Parameters:
        `parent` - the parent plot (`null` permitted).
      See Also:
        `getParent()`

    - #### getRootPlot

          public Plot getRootPlot()

      Returns the root plot.
      Returns:
        The root plot.
      See Also:
        `getParent()`

    - #### isSubplot

          public boolean isSubplot()

      Returns `true` if this plot is part of a combined plot structure (that is, `getParent()` returns a non-`null` value), and `false` otherwise.
      Returns:
        `true` if this plot is part of a combined plot structure.
      See Also:
        `getParent()`

    - #### getInsets

          public RectangleInsets getInsets()

      Returns the insets for the plot area.
      Returns:
        The insets (never `null`).
      See Also:
        `setInsets(RectangleInsets)`

    - #### setInsets

          public void setInsets(RectangleInsets insets)

      Sets the insets for the plot and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `insets` - the new insets (`null` not permitted).
      See Also:
        `getInsets()`, `setInsets(RectangleInsets, boolean)`

    - #### setInsets

          public void setInsets(RectangleInsets insets,
                                boolean notify)

      Sets the insets for the plot and, if requested, and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `insets` - the new insets (`null` not permitted).
        `notify` - a flag that controls whether the registered listeners are notified.
      See Also:
        `getInsets()`, `setInsets(RectangleInsets)`

    - #### getBackgroundPaint

          public java.awt.Paint getBackgroundPaint()

      Returns the background color of the plot area.
      Returns:
        The paint (possibly `null`).
      See Also:
        `setBackgroundPaint(Paint)`

    - #### setBackgroundPaint

          public void setBackgroundPaint(java.awt.Paint paint)

      Sets the background color of the plot area and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `paint` - the paint (`null` permitted).
      See Also:
        `getBackgroundPaint()`

    - #### getBackgroundAlpha

          public float getBackgroundAlpha()

      Returns the alpha transparency of the plot area background.
      Returns:
        The alpha transparency.
      See Also:
        `setBackgroundAlpha(float)`

    - #### setBackgroundAlpha

          public void setBackgroundAlpha(float alpha)

      Sets the alpha transparency of the plot area background, and notifies registered listeners that the plot has been modified.
      Parameters:
        `alpha` - the new alpha value (in the range 0.0f to 1.0f).
      See Also:
        `getBackgroundAlpha()`

    - #### getDrawingSupplier

          public DrawingSupplier getDrawingSupplier()

      Returns the drawing supplier for the plot.
      Returns:
        The drawing supplier (possibly `null`).
      See Also:
        `setDrawingSupplier(DrawingSupplier)`

    - #### setDrawingSupplier

          public void setDrawingSupplier(DrawingSupplier supplier)

      Sets the drawing supplier for the plot and sends a `PlotChangeEvent` to all registered listeners. The drawing supplier is responsible for supplying a limitless (possibly repeating) sequence of `Paint`, `Stroke` and `Shape` objects that the plot's renderer(s) can use to populate its (their) tables.
      Parameters:
        `supplier` - the new supplier.
      See Also:
        `getDrawingSupplier()`

    - #### setDrawingSupplier

          public void setDrawingSupplier(DrawingSupplier supplier,
                                         boolean notify)

      Sets the drawing supplier for the plot and, if requested, sends a `PlotChangeEvent` to all registered listeners. The drawing supplier is responsible for supplying a limitless (possibly repeating) sequence of `Paint`, `Stroke` and `Shape` objects that the plot's renderer(s) can use to populate its (their) tables.
      Parameters:
        `supplier` - the new supplier.
        `notify` - notify listeners?
      Since:
        1.0.11
      See Also:
        `getDrawingSupplier()`

    - #### getBackgroundImage

          public java.awt.Image getBackgroundImage()

      Returns the background image that is used to fill the plot's background area.
      Returns:
        The image (possibly `null`).
      See Also:
        `setBackgroundImage(Image)`

    - #### setBackgroundImage

          public void setBackgroundImage(java.awt.Image image)

      Sets the background image for the plot and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `image` - the image (`null` permitted).
      See Also:
        `getBackgroundImage()`

    - #### getBackgroundImageAlignment

          public int getBackgroundImageAlignment()

      Returns the background image alignment. Alignment constants are defined in the `org.jfree.ui.Align` class in the JCommon class library.
      Returns:
        The alignment.
      See Also:
        `setBackgroundImageAlignment(int)`

    - #### setBackgroundImageAlignment

          public void setBackgroundImageAlignment(int alignment)

      Sets the alignment for the background image and sends a `PlotChangeEvent` to all registered listeners. Alignment options are defined by the `Align` class in the JCommon class library.
      Parameters:
        `alignment` - the alignment.
      See Also:
        `getBackgroundImageAlignment()`

    - #### getBackgroundImageAlpha

          public float getBackgroundImageAlpha()

      Returns the alpha transparency used to draw the background image. This is a value in the range 0.0f to 1.0f, where 0.0f is fully transparent and 1.0f is fully opaque.
      Returns:
        The alpha transparency.
      See Also:
        `setBackgroundImageAlpha(float)`

    - #### setBackgroundImageAlpha

          public void setBackgroundImageAlpha(float alpha)

      Sets the alpha transparency used when drawing the background image.
      Parameters:
        `alpha` - the alpha transparency (in the range 0.0f to 1.0f, where 0.0f is fully transparent, and 1.0f is fully opaque).
      Throws:
        `java.lang.IllegalArgumentException` - if `alpha` is not within the specified range.
      See Also:
        `getBackgroundImageAlpha()`

    - #### isOutlineVisible

          public boolean isOutlineVisible()

      Returns the flag that controls whether or not the plot outline is drawn. The default value is `true`. Note that for historical reasons, the plot's outline paint and stroke can take on `null` values, in which case the outline will not be drawn even if this flag is set to `true`.
      Returns:
        The outline visibility flag.
      Since:
        1.0.6
      See Also:
        `setOutlineVisible(boolean)`

    - #### setOutlineVisible

          public void setOutlineVisible(boolean visible)

      Sets the flag that controls whether or not the plot's outline is drawn, and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `visible` - the new flag value.
      Since:
        1.0.6
      See Also:
        `isOutlineVisible()`

    - #### getOutlineStroke

          public java.awt.Stroke getOutlineStroke()

      Returns the stroke used to outline the plot area.
      Returns:
        The stroke (possibly `null`).
      See Also:
        `setOutlineStroke(Stroke)`

    - #### setOutlineStroke

          public void setOutlineStroke(java.awt.Stroke stroke)

      Sets the stroke used to outline the plot area and sends a `PlotChangeEvent` to all registered listeners. If you set this attribute to `null`, no outline will be drawn.
      Parameters:
        `stroke` - the stroke (`null` permitted).
      See Also:
        `getOutlineStroke()`

    - #### getOutlinePaint

          public java.awt.Paint getOutlinePaint()

      Returns the color used to draw the outline of the plot area.
      Returns:
        The color (possibly `null`).
      See Also:
        `setOutlinePaint(Paint)`

    - #### setOutlinePaint

          public void setOutlinePaint(java.awt.Paint paint)

      Sets the paint used to draw the outline of the plot area and sends a `PlotChangeEvent` to all registered listeners. If you set this attribute to `null`, no outline will be drawn.
      Parameters:
        `paint` - the paint (`null` permitted).
      See Also:
        `getOutlinePaint()`

    - #### getForegroundAlpha

          public float getForegroundAlpha()

      Returns the alpha-transparency for the plot foreground.
      Returns:
        The alpha-transparency.
      See Also:
        `setForegroundAlpha(float)`

    - #### setForegroundAlpha

          public void setForegroundAlpha(float alpha)

      Sets the alpha-transparency for the plot and sends a `PlotChangeEvent` to all registered listeners.
      Parameters:
        `alpha` - the new alpha transparency.
      See Also:
        `getForegroundAlpha()`

    - #### getLegendItems

          public LegendItemCollection getLegendItems()

      Returns the legend items for the plot. By default, this method returns `null`. Subclasses should override to return a `LegendItemCollection`.
      Specified by:
        `getLegendItems` in interface `LegendItemSource`
      Returns:
        The legend items for the plot (possibly `null`).

    - #### isNotify

          public boolean isNotify()

      Returns a flag that controls whether or not change events are sent to registered listeners.
      Returns:
        A boolean.
      Since:
        1.0.13
      See Also:
        `setNotify(boolean)`

    - #### setNotify

          public void setNotify(boolean notify)

      Sets a flag that controls whether or not listeners receive `PlotChangeEvent` notifications.
      Parameters:
        `notify` - a boolean.
      Since:
        1.0.13
      See Also:
        `isNotify()`

    - #### addChangeListener

          public void addChangeListener(PlotChangeListener listener)

      Registers an object for notification of changes to the plot.
      Parameters:
        `listener` - the object to be registered.
      See Also:
        `removeChangeListener(PlotChangeListener)`

    - #### removeChangeListener

          public void removeChangeListener(PlotChangeListener listener)

      Unregisters an object for notification of changes to the plot.
      Parameters:
        `listener` - the object to be unregistered.
      See Also:
        `addChangeListener(PlotChangeListener)`

    - #### notifyListeners

          public void notifyListeners(PlotChangeEvent event)

      Notifies all registered listeners that the plot has been modified.
      Parameters:
        `event` - information about the change event.

    - #### fireChangeEvent

          protected void fireChangeEvent()

      Sends a `PlotChangeEvent` to all registered listeners.
      Since:
        1.0.10

    - #### draw

          public abstract 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. The anchor is a point on the chart that is specified externally (for instance, it may be the last point of the last mouse click performed by the user) - plots can use or ignore this value as they see fit.
      Subclasses need to provide an implementation of this method, obviously.
      Parameters:
        `g2` - the graphics device.
        `area` - the plot area.
        `anchor` - the anchor point (`null` permitted).
        `parentState` - the parent state (if any).
        `info` - carries back plot rendering info.

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

      Parameters:
        `g2` - the graphics device.
        `area` - the area within which the plot should be drawn.

    - #### fillBackground

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

      Fills the specified area with the background paint.
      Parameters:
        `g2` - the graphics device.
        `area` - the area.
      See Also:
        `getBackgroundPaint()`, `getBackgroundAlpha()`, `fillBackground(Graphics2D, Rectangle2D, PlotOrientation)`

    - #### fillBackground

          protected void fillBackground(java.awt.Graphics2D g2,
                                        java.awt.geom.Rectangle2D area,
                                        PlotOrientation orientation)

      Fills the specified area with the background paint. If the background paint is an instance of `GradientPaint`, the gradient will run in the direction suggested by the plot's orientation.
      Parameters:
        `g2` - the graphics target.
        `area` - the plot area.
        `orientation` - the plot orientation (`null` not permitted).
      Since:
        1.0.6

    - #### drawBackgroundImage

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

      Draws the background image (if there is one) aligned within the specified area.
      Parameters:
        `g2` - the graphics device.
        `area` - the area.
      See Also:
        `getBackgroundImage()`, `getBackgroundImageAlignment()`, `getBackgroundImageAlpha()`

    - #### drawOutline

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

      Draws the plot outline. 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.
      Parameters:
        `g2` - the graphics device.
        `area` - the area within which the plot should be drawn.

    - #### drawNoDataMessage

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

      Draws a message to state that there is no data to plot.
      Parameters:
        `g2` - the graphics device.
        `area` - the area within which the plot should be drawn.

    - #### createAndAddEntity

          protected void createAndAddEntity(java.awt.geom.Rectangle2D dataArea,
                                            PlotRenderingInfo plotState,
                                            java.lang.String toolTip,
                                            java.lang.String urlText)

      Creates a plot entity that contains a reference to the plot and the data area as shape.
      Parameters:
        `dataArea` - the data area used as hot spot for the entity.
        `plotState` - the plot rendering info containing a reference to the EntityCollection.
        `toolTip` - the tool tip (defined in the respective Plot subclass) (`null` permitted).
        `urlText` - the url (defined in the respective Plot subclass) (`null` permitted).
      Since:
        1.0.13

    - #### handleClick

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

      Handles a 'click' on the plot. Since the plot does not maintain any information about where it has been drawn, the plot rendering info is supplied as an argument so that the plot dimensions can be determined.
      Parameters:
        `x` - the x coordinate (in Java2D space).
        `y` - the y coordinate (in Java2D space).
        `info` - an object containing information about the dimensions of the plot.

    - #### zoom

          public void zoom(double percent)

      Performs a zoom on the plot. Subclasses should override if zooming is appropriate for the type of plot.
      Parameters:
        `percent` - the zoom percentage.

    - #### annotationChanged

          public void annotationChanged(AnnotationChangeEvent event)

      Receives notification of a change to an `Annotation` added to this plot.
      Specified by:
        `annotationChanged` in interface `AnnotationChangeListener`
      Parameters:
        `event` - information about the event (not used here).
      Since:
        1.0.14

    - #### axisChanged

          public void axisChanged(AxisChangeEvent event)

      Receives notification of a change to one of the plot's axes.
      Specified by:
        `axisChanged` in interface `AxisChangeListener`
      Parameters:
        `event` - information about the event (not used here).

    - #### datasetChanged

          public void datasetChanged(DatasetChangeEvent event)

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

      The plot reacts by passing on a plot change event to all registered listeners.

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

    - #### markerChanged

          public void markerChanged(MarkerChangeEvent event)

      Receives notification of a change to a marker that is assigned to the plot.
      Specified by:
        `markerChanged` in interface `MarkerChangeListener`
      Parameters:
        `event` - the event.
      Since:
        1.0.3

    - #### getRectX

          protected double getRectX(double x,
                                    double w1,
                                    double w2,
                                    RectangleEdge edge)

      Adjusts the supplied x-value.
      Parameters:
        `x` - the x-value.
        `w1` - width 1.
        `w2` - width 2.
        `edge` - the edge (left or right).
      Returns:
        The adjusted x-value.

    - #### getRectY

          protected double getRectY(double y,
                                    double h1,
                                    double h2,
                                    RectangleEdge edge)

      Adjusts the supplied y-value.
      Parameters:
        `y` - the x-value.
        `h1` - height 1.
        `h2` - height 2.
        `edge` - the edge (top or bottom).
      Returns:
        The adjusted y-value.

    - #### equals

          public boolean equals(java.lang.Object obj)

      Tests this plot for equality with another object.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `obj` - the object (`null` permitted).
      Returns:
        `true` or `false`.

    - #### clone

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

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

    - #### resolveDomainAxisLocation

          public static RectangleEdge resolveDomainAxisLocation(AxisLocation location,
                                                                PlotOrientation orientation)

      Resolves a domain axis location for a given plot orientation.
      Parameters:
        `location` - the location (`null` not permitted).
        `orientation` - the orientation (`null` not permitted).
      Returns:
        The edge (never `null`).

    - #### resolveRangeAxisLocation

          public static RectangleEdge resolveRangeAxisLocation(AxisLocation location,
                                                               PlotOrientation orientation)

      Resolves a range axis location for a given plot orientation.
      Parameters:
        `location` - the location (`null` not permitted).
        `orientation` - the orientation (`null` not permitted).
      Returns:
        The edge (never `null`).