## org.jfree.chart.plot
Class SpiderWebPlot

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

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

    public class SpiderWebPlot

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

A plot that displays data from a `CategoryDataset` in the form of a "spider web". Multiple series can be plotted on the same axis to allow easy comparison. This plot doesn't support negative values at present.

See Also:
  Serialized Form

Field Summary
`static double` `DEFAULT_AXIS_LABEL_GAP` The default axis label gap (currently 10%).
`static double` `DEFAULT_HEAD` The default head radius percent (currently 1%).
`static double` `DEFAULT_INTERIOR_GAP` The default interior gap.
`static java.awt.Paint` `DEFAULT_LABEL_BACKGROUND_PAINT` The default series label background paint.
`static java.awt.Font` `DEFAULT_LABEL_FONT` The default series label font.
`static java.awt.Paint` `DEFAULT_LABEL_OUTLINE_PAINT` The default series label outline paint.
`static java.awt.Stroke` `DEFAULT_LABEL_OUTLINE_STROKE` The default series label outline stroke.
`static java.awt.Paint` `DEFAULT_LABEL_PAINT` The default series label paint.
`static java.awt.Paint` `DEFAULT_LABEL_SHADOW_PAINT` The default series label shadow paint.
`static double` `DEFAULT_MAX_VALUE` The default maximum value plotted - forces the plot to evaluate the maximum from the data passed in
`static double` `DEFAULT_START_ANGLE` The default starting angle for the radar chart axes.
`protected double` `headPercent` The head radius as a percentage of the available drawing area.
`static double` `MAX_INTERIOR_GAP` The maximum interior gap (currently 40%).

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
`SpiderWebPlot()` Creates a default plot with no dataset.
`SpiderWebPlot(CategoryDataset dataset)` Creates a new spider web plot with the given dataset, with each row representing a series.
`SpiderWebPlot(CategoryDataset dataset, org.jfree.util.TableOrder extract)` Creates a new spider web plot with the given dataset.

Method Summary
`protected java.awt.geom.Point2D` `calculateLabelLocation(java.awt.geom.Rectangle2D labelBounds, double ascent, java.awt.geom.Rectangle2D plotArea, double startAngle)` Returns the location for a label
`java.lang.Object` `clone()` Returns a clone of this plot.
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)` Draws the plot on a Java 2D graphics device (such as the screen or a printer).
`protected void` `drawLabel(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, double value, int cat, double startAngle, double extent)` Draws the label for one axis.
`protected void` `drawRadarPoly(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Point2D centre, PlotRenderingInfo info, int series, int catCount, double headH, double headW)` Draws a radar plot polygon.
`boolean` `equals(java.lang.Object obj)` Tests this plot for equality with an arbitrary object.
`double` `getAxisLabelGap()` Returns the axis label gap.
`java.awt.Paint` `getAxisLinePaint()` Returns the paint used to draw the axis lines.
`java.awt.Stroke` `getAxisLineStroke()` Returns the stroke used to draw the axis lines.
`java.awt.Paint` `getBaseSeriesOutlinePaint()` Returns the base series paint.
`java.awt.Stroke` `getBaseSeriesOutlineStroke()` Returns the base series stroke.
`java.awt.Paint` `getBaseSeriesPaint()` Returns the base series paint.
`org.jfree.util.TableOrder` `getDataExtractOrder()` Returns the data extract order (by row or by column).
`CategoryDataset` `getDataset()` Returns the dataset.
`org.jfree.util.Rotation` `getDirection()` Returns the direction in which the radar axes are drawn (clockwise or anti-clockwise).
`double` `getHeadPercent()` Returns the head percent.
`double` `getInteriorGap()` Returns the interior gap, measured as a percentage of the available drawing space.
`java.awt.Font` `getLabelFont()` Returns the series label font.
`CategoryItemLabelGenerator` `getLabelGenerator()` Returns the label generator.
`java.awt.Paint` `getLabelPaint()` Returns the series label paint.
`LegendItemCollection` `getLegendItems()` Returns a collection of legend items for the radar chart.
`java.awt.Shape` `getLegendItemShape()` Returns the shape used for legend items.
`double` `getMaxValue()` Returns the maximum value any category axis can take.
`java.lang.String` `getPlotType()` Returns a short string describing the type of plot.
`protected java.lang.Number` `getPlotValue(int series, int cat)` Returns the value to be plotted at the interseries of the series and the category.
`java.awt.Paint` `getSeriesOutlinePaint()` Returns the outline paint for ALL series in the plot.
`java.awt.Paint` `getSeriesOutlinePaint(int series)` Returns the paint for the specified series.
`java.awt.Stroke` `getSeriesOutlineStroke()` Returns the outline stroke for ALL series in the plot.
`java.awt.Stroke` `getSeriesOutlineStroke(int series)` Returns the stroke for the specified series.
`java.awt.Paint` `getSeriesPaint()` Returns the paint for ALL series in the plot.
`java.awt.Paint` `getSeriesPaint(int series)` Returns the paint for the specified series.
`double` `getStartAngle()` Returns the start angle for the first radar axis.
`CategoryToolTipGenerator` `getToolTipGenerator()` Returns the tool tip generator for the plot.
`CategoryURLGenerator` `getURLGenerator()` Returns the URL generator for the plot.
`protected java.awt.geom.Point2D` `getWebPoint(java.awt.geom.Rectangle2D bounds, double angle, double length)` Returns a cartesian point from a polar angle, length and bounding box
`boolean` `isWebFilled()` Method to determine if the web chart is to be filled.
`void` `setAxisLabelGap(double gap)` Sets the axis label gap and sends a `PlotChangeEvent` to all registered listeners.
`void` `setAxisLinePaint(java.awt.Paint paint)` Sets the paint used to draw the axis lines and sends a `PlotChangeEvent` to all registered listeners.
`void` `setAxisLineStroke(java.awt.Stroke stroke)` Sets the stroke used to draw the axis lines and sends a `PlotChangeEvent` to all registered listeners.
`void` `setBaseSeriesOutlinePaint(java.awt.Paint paint)` Sets the base series paint.
`void` `setBaseSeriesOutlineStroke(java.awt.Stroke stroke)` Sets the base series stroke.
`void` `setBaseSeriesPaint(java.awt.Paint paint)` Sets the base series paint.
`void` `setDataExtractOrder(org.jfree.util.TableOrder order)` Sets the data extract order (by row or by column) and sends a `PlotChangeEvent`to all registered listeners.
`void` `setDataset(CategoryDataset dataset)` Sets the dataset used by the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDirection(org.jfree.util.Rotation direction)` Sets the direction in which the radar axes are drawn and sends a `PlotChangeEvent` to all registered listeners.
`void` `setHeadPercent(double percent)` Sets the head percent and sends a `PlotChangeEvent` to all registered listeners.
`void` `setInteriorGap(double percent)` Sets the interior gap and sends a `PlotChangeEvent` to all registered listeners.
`void` `setLabelFont(java.awt.Font font)` Sets the series label font and sends a `PlotChangeEvent` to all registered listeners.
`void` `setLabelGenerator(CategoryItemLabelGenerator generator)` Sets the label generator and sends a `PlotChangeEvent` to all registered listeners.
`void` `setLabelPaint(java.awt.Paint paint)` Sets the series label paint and sends a `PlotChangeEvent` to all registered listeners.
`void` `setLegendItemShape(java.awt.Shape shape)` Sets the shape used for legend items and sends a `PlotChangeEvent` to all registered listeners.
`void` `setMaxValue(double value)` Sets the maximum value any category axis can take and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSeriesOutlinePaint(int series, java.awt.Paint paint)` Sets the paint used to fill a series of the radar and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSeriesOutlinePaint(java.awt.Paint paint)` Sets the outline paint for ALL series in the plot.
`void` `setSeriesOutlineStroke(int series, java.awt.Stroke stroke)` Sets the stroke used to fill a series of the radar and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSeriesOutlineStroke(java.awt.Stroke stroke)` Sets the outline stroke for ALL series in the plot.
`void` `setSeriesPaint(int series, java.awt.Paint paint)` Sets the paint used to fill a series of the radar and sends a `PlotChangeEvent` to all registered listeners.
`void` `setSeriesPaint(java.awt.Paint paint)` Sets the paint for ALL series in the plot.
`void` `setStartAngle(double angle)` Sets the starting angle and sends a `PlotChangeEvent` to all registered listeners.
`void` `setToolTipGenerator(CategoryToolTipGenerator generator)` Sets the tool tip generator for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setURLGenerator(CategoryURLGenerator generator)` Sets the URL generator for the plot and sends a `PlotChangeEvent` to all registered listeners.
`void` `setWebFilled(boolean flag)` Sets the webFilled flag and sends a `PlotChangeEvent` to all registered listeners.

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

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

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

Field Detail

### DEFAULT_HEAD

    public static final double DEFAULT_HEAD

  The default head radius percent (currently 1%).

  See Also:
    Constant Field Values

### DEFAULT_AXIS_LABEL_GAP

    public static final double DEFAULT_AXIS_LABEL_GAP

  The default axis label gap (currently 10%).

  See Also:
    Constant Field Values

### DEFAULT_INTERIOR_GAP

    public static final double DEFAULT_INTERIOR_GAP

  The default interior gap.

  See Also:
    Constant Field Values

### MAX_INTERIOR_GAP

    public static final double MAX_INTERIOR_GAP

  The maximum interior gap (currently 40%).

  See Also:
    Constant Field Values

### DEFAULT_START_ANGLE

    public static final double DEFAULT_START_ANGLE

  The default starting angle for the radar chart axes.

  See Also:
    Constant Field Values

### DEFAULT_LABEL_FONT

    public static final java.awt.Font DEFAULT_LABEL_FONT

  The default series label font.

### DEFAULT_LABEL_PAINT

    public static final java.awt.Paint DEFAULT_LABEL_PAINT

  The default series label paint.

### DEFAULT_LABEL_BACKGROUND_PAINT

    public static final java.awt.Paint DEFAULT_LABEL_BACKGROUND_PAINT

  The default series label background paint.

### DEFAULT_LABEL_OUTLINE_PAINT

    public static final java.awt.Paint DEFAULT_LABEL_OUTLINE_PAINT

  The default series label outline paint.

### DEFAULT_LABEL_OUTLINE_STROKE

    public static final java.awt.Stroke DEFAULT_LABEL_OUTLINE_STROKE

  The default series label outline stroke.

### DEFAULT_LABEL_SHADOW_PAINT

    public static final java.awt.Paint DEFAULT_LABEL_SHADOW_PAINT

  The default series label shadow paint.

### DEFAULT_MAX_VALUE

    public static final double DEFAULT_MAX_VALUE

  The default maximum value plotted - forces the plot to evaluate the maximum from the data passed in

  See Also:
    Constant Field Values

### headPercent

    protected double headPercent

  The head radius as a percentage of the available drawing area.

Constructor Detail

### SpiderWebPlot

    public SpiderWebPlot()

  Creates a default plot with no dataset.

### SpiderWebPlot

    public SpiderWebPlot(CategoryDataset dataset)

  Creates a new spider web plot with the given dataset, with each row representing a series.

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

### SpiderWebPlot

    public SpiderWebPlot(CategoryDataset dataset,
                         org.jfree.util.TableOrder extract)

  Creates a new spider web plot with the given dataset.

  Parameters:
    `dataset` - the dataset.
    `extract` - controls how data is extracted (`TableOrder.BY_ROW` or `TableOrder.BY_COLUMN`).

Method Detail

### getPlotType

    public java.lang.String getPlotType()

  Returns a short string describing the type of plot.

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

### getDataset

    public CategoryDataset getDataset()

  Returns the dataset.

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

### setDataset

    public void setDataset(CategoryDataset dataset)

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

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

### isWebFilled

    public boolean isWebFilled()

  Method to determine if the web chart is to be filled.

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

### setWebFilled

    public void setWebFilled(boolean flag)

  Sets the webFilled flag and sends a `PlotChangeEvent` to all registered listeners.

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

### getDataExtractOrder

    public org.jfree.util.TableOrder getDataExtractOrder()

  Returns the data extract order (by row or by column).

  Returns:
    The data extract order (never `null`).
  See Also:
    `setDataExtractOrder(TableOrder)`

### setDataExtractOrder

    public void setDataExtractOrder(org.jfree.util.TableOrder order)

  Sets the data extract order (by row or by column) and sends a `PlotChangeEvent`to all registered listeners.

  Parameters:
    `order` - the order (`null` not permitted).
  Throws:
    `java.lang.IllegalArgumentException` - if `order` is `null`.
  See Also:
    `getDataExtractOrder()`

### getHeadPercent

    public double getHeadPercent()

  Returns the head percent.

  Returns:
    The head percent.
  See Also:
    `setHeadPercent(double)`

### setHeadPercent

    public void setHeadPercent(double percent)

  Sets the head percent and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `percent` - the percent.
  See Also:
    `getHeadPercent()`

### getStartAngle

    public double getStartAngle()

  Returns the start angle for the first radar axis.
  This is measured in degrees starting from 3 o'clock (Java Arc2D default) and measuring anti-clockwise.

  Returns:
    The start angle.
  See Also:
    `setStartAngle(double)`

### setStartAngle

    public void setStartAngle(double angle)

  Sets the starting angle and sends a `PlotChangeEvent` to all registered listeners.

  The initial default value is 90 degrees, which corresponds to 12 o'clock. A value of zero corresponds to 3 o'clock... this is the encoding used by Java's Arc2D class.

  Parameters:
    `angle` - the angle (in degrees).
  See Also:
    `getStartAngle()`

### getMaxValue

    public double getMaxValue()

  Returns the maximum value any category axis can take.

  Returns:
    The maximum value.
  See Also:
    `setMaxValue(double)`

### setMaxValue

    public void setMaxValue(double value)

  Sets the maximum value any category axis can take and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `value` - the maximum value.
  See Also:
    `getMaxValue()`

### getDirection

    public org.jfree.util.Rotation getDirection()

  Returns the direction in which the radar axes are drawn (clockwise or anti-clockwise).

  Returns:
    The direction (never `null`).
  See Also:
    `setDirection(Rotation)`

### setDirection

    public void setDirection(org.jfree.util.Rotation direction)

  Sets the direction in which the radar axes are drawn and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `direction` - the direction (`null` not permitted).
  See Also:
    `getDirection()`

### getInteriorGap

    public double getInteriorGap()

  Returns the interior gap, measured as a percentage of the available drawing space.

  Returns:
    The gap (as a percentage of the available drawing space).
  See Also:
    `setInteriorGap(double)`

### setInteriorGap

    public void setInteriorGap(double percent)

  Sets the interior gap and sends a `PlotChangeEvent` to all registered listeners. This controls the space between the edges of the plot and the plot area itself (the region where the axis labels appear).

  Parameters:
    `percent` - the gap (as a percentage of the available drawing space).
  See Also:
    `getInteriorGap()`

### getAxisLabelGap

    public double getAxisLabelGap()

  Returns the axis label gap.

  Returns:
    The axis label gap.
  See Also:
    `setAxisLabelGap(double)`

### setAxisLabelGap

    public void setAxisLabelGap(double gap)

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

  Parameters:
    `gap` - the gap.
  See Also:
    `getAxisLabelGap()`

### getAxisLinePaint

    public java.awt.Paint getAxisLinePaint()

  Returns the paint used to draw the axis lines.

  Returns:
    The paint used to draw the axis lines (never `null`).
  Since:
    1.0.4
  See Also:
    `setAxisLinePaint(Paint)`, `getAxisLineStroke()`

### setAxisLinePaint

    public void setAxisLinePaint(java.awt.Paint paint)

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

  Parameters:
    `paint` - the paint (`null` not permitted).
  Since:
    1.0.4
  See Also:
    `getAxisLinePaint()`

### getAxisLineStroke

    public java.awt.Stroke getAxisLineStroke()

  Returns the stroke used to draw the axis lines.

  Returns:
    The stroke used to draw the axis lines (never `null`).
  Since:
    1.0.4
  See Also:
    `setAxisLineStroke(Stroke)`, `getAxisLinePaint()`

### setAxisLineStroke

    public void setAxisLineStroke(java.awt.Stroke stroke)

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

  Parameters:
    `stroke` - the stroke (`null` not permitted).
  Since:
    1.0.4
  See Also:
    `getAxisLineStroke()`

### getSeriesPaint

    public java.awt.Paint getSeriesPaint()

  Returns the paint for ALL series in the plot.

  Returns:
    The paint (possibly `null`).
  See Also:
    `setSeriesPaint(Paint)`

### setSeriesPaint

    public void setSeriesPaint(java.awt.Paint paint)

  Sets the paint for ALL series in the plot. If this is set to null , then a list of paints is used instead (to allow different colors to be used for each series of the radar group).

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

### getSeriesPaint

    public java.awt.Paint getSeriesPaint(int series)

  Returns the paint for the specified series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The paint (never `null`).
  See Also:
    `setSeriesPaint(int, Paint)`

### setSeriesPaint

    public void setSeriesPaint(int series,
                               java.awt.Paint paint)

  Sets the paint used to fill a series of the radar and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `paint` - the paint (`null` permitted).
  See Also:
    `getSeriesPaint(int)`

### getBaseSeriesPaint

    public java.awt.Paint getBaseSeriesPaint()

  Returns the base series paint. This is used when no other paint is available.

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

### setBaseSeriesPaint

    public void setBaseSeriesPaint(java.awt.Paint paint)

  Sets the base series paint.

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

### getSeriesOutlinePaint

    public java.awt.Paint getSeriesOutlinePaint()

  Returns the outline paint for ALL series in the plot.

  Returns:
    The paint (possibly `null`).

### setSeriesOutlinePaint

    public void setSeriesOutlinePaint(java.awt.Paint paint)

  Sets the outline paint for ALL series in the plot. If this is set to null, then a list of paints is used instead (to allow different colors to be used for each series).

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

### getSeriesOutlinePaint

    public java.awt.Paint getSeriesOutlinePaint(int series)

  Returns the paint for the specified series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The paint (never `null`).

### setSeriesOutlinePaint

    public void setSeriesOutlinePaint(int series,
                                      java.awt.Paint paint)

  Sets the paint used to fill a series of the radar and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `paint` - the paint (`null` permitted).

### getBaseSeriesOutlinePaint

    public java.awt.Paint getBaseSeriesOutlinePaint()

  Returns the base series paint. This is used when no other paint is available.

  Returns:
    The paint (never `null`).

### setBaseSeriesOutlinePaint

    public void setBaseSeriesOutlinePaint(java.awt.Paint paint)

  Sets the base series paint.

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

### getSeriesOutlineStroke

    public java.awt.Stroke getSeriesOutlineStroke()

  Returns the outline stroke for ALL series in the plot.

  Returns:
    The stroke (possibly `null`).

### setSeriesOutlineStroke

    public void setSeriesOutlineStroke(java.awt.Stroke stroke)

  Sets the outline stroke for ALL series in the plot. If this is set to null, then a list of paints is used instead (to allow different colors to be used for each series).

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

### getSeriesOutlineStroke

    public java.awt.Stroke getSeriesOutlineStroke(int series)

  Returns the stroke for the specified series.

  Parameters:
    `series` - the series index (zero-based).
  Returns:
    The stroke (never `null`).

### setSeriesOutlineStroke

    public void setSeriesOutlineStroke(int series,
                                       java.awt.Stroke stroke)

  Sets the stroke used to fill a series of the radar and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `series` - the series index (zero-based).
    `stroke` - the stroke (`null` permitted).

### getBaseSeriesOutlineStroke

    public java.awt.Stroke getBaseSeriesOutlineStroke()

  Returns the base series stroke. This is used when no other stroke is available.

  Returns:
    The stroke (never `null`).

### setBaseSeriesOutlineStroke

    public void setBaseSeriesOutlineStroke(java.awt.Stroke stroke)

  Sets the base series stroke.

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

### getLegendItemShape

    public java.awt.Shape getLegendItemShape()

  Returns the shape used for legend items.

  Returns:
    The shape (never `null`).
  See Also:
    `setLegendItemShape(Shape)`

### setLegendItemShape

    public void setLegendItemShape(java.awt.Shape shape)

  Sets the shape used for legend items and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `shape` - the shape (`null` not permitted).
  See Also:
    `getLegendItemShape()`

### getLabelFont

    public java.awt.Font getLabelFont()

  Returns the series label font.

  Returns:
    The font (never `null`).
  See Also:
    `setLabelFont(Font)`

### setLabelFont

    public void setLabelFont(java.awt.Font font)

  Sets the series label font and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `font` - the font (`null` not permitted).
  See Also:
    `getLabelFont()`

### getLabelPaint

    public java.awt.Paint getLabelPaint()

  Returns the series label paint.

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

### setLabelPaint

    public void setLabelPaint(java.awt.Paint paint)

  Sets the series label paint and sends a `PlotChangeEvent` to all registered listeners.

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

### getLabelGenerator

    public CategoryItemLabelGenerator getLabelGenerator()

  Returns the label generator.

  Returns:
    The label generator (never `null`).
  See Also:
    `setLabelGenerator(CategoryItemLabelGenerator)`

### setLabelGenerator

    public void setLabelGenerator(CategoryItemLabelGenerator generator)

  Sets the label generator and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `generator` - the generator (`null` not permitted).
  See Also:
    `getLabelGenerator()`

### getToolTipGenerator

    public CategoryToolTipGenerator getToolTipGenerator()

  Returns the tool tip generator for the plot.

  Returns:
    The tool tip generator (possibly `null`).
  Since:
    1.0.2
  See Also:
    `setToolTipGenerator(CategoryToolTipGenerator)`

### setToolTipGenerator

    public void setToolTipGenerator(CategoryToolTipGenerator generator)

  Sets the tool tip generator for the plot and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `generator` - the generator (`null` permitted).
  Since:
    1.0.2
  See Also:
    `getToolTipGenerator()`

### getURLGenerator

    public CategoryURLGenerator getURLGenerator()

  Returns the URL generator for the plot.

  Returns:
    The URL generator (possibly `null`).
  Since:
    1.0.2
  See Also:
    `setURLGenerator(CategoryURLGenerator)`

### setURLGenerator

    public void setURLGenerator(CategoryURLGenerator generator)

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

  Parameters:
    `generator` - the generator (`null` permitted).
  Since:
    1.0.2
  See Also:
    `getURLGenerator()`

### getLegendItems

    public LegendItemCollection getLegendItems()

  Returns a collection of legend items for the radar chart.

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

### getWebPoint

    protected java.awt.geom.Point2D getWebPoint(java.awt.geom.Rectangle2D bounds,
                                                double angle,
                                                double length)

  Returns a cartesian point from a polar angle, length and bounding box

  Parameters:
    `bounds` - the area inside which the point needs to be.
    `angle` - the polar angle, in degrees.
    `length` - the relative length. Given in percent of maximum extend.
  Returns:
    The cartesian point.

### draw

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

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

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

### drawRadarPoly

    protected void drawRadarPoly(java.awt.Graphics2D g2,
                                 java.awt.geom.Rectangle2D plotArea,
                                 java.awt.geom.Point2D centre,
                                 PlotRenderingInfo info,
                                 int series,
                                 int catCount,
                                 double headH,
                                 double headW)

  Draws a radar plot polygon.

  Parameters:
    `g2` - the graphics device.
    `plotArea` - the area we are plotting in (already adjusted).
    `centre` - the centre point of the radar axes
    `info` - chart rendering info.
    `series` - the series within the dataset we are plotting
    `catCount` - the number of categories per radar plot
    `headH` - the data point height
    `headW` - the data point width

### getPlotValue

    protected java.lang.Number getPlotValue(int series,
                                            int cat)

  Returns the value to be plotted at the interseries of the series and the category. This allows us to plot `BY_ROW` or `BY_COLUMN` which basically is just reversing the definition of the categories and data series being plotted.

  Parameters:
    `series` - the series to be plotted.
    `cat` - the category within the series to be plotted.
  Returns:
    The value to be plotted (possibly `null`).
  See Also:
    `getDataExtractOrder()`

### drawLabel

    protected void drawLabel(java.awt.Graphics2D g2,
                             java.awt.geom.Rectangle2D plotArea,
                             double value,
                             int cat,
                             double startAngle,
                             double extent)

  Draws the label for one axis.

  Parameters:
    `g2` - the graphics device.
    `plotArea` - the plot area
    `value` - the value of the label (ignored).
    `cat` - the category (zero-based index).
    `startAngle` - the starting angle.
    `extent` - the extent of the arc.

### calculateLabelLocation

    protected java.awt.geom.Point2D calculateLabelLocation(java.awt.geom.Rectangle2D labelBounds,
                                                           double ascent,
                                                           java.awt.geom.Rectangle2D plotArea,
                                                           double startAngle)

  Returns the location for a label

  Parameters:
    `labelBounds` - the label bounds.
    `ascent` - the ascent (height of font).
    `plotArea` - the plot area
    `startAngle` - the start angle for the pie series.
  Returns:
    The location for a label.

### equals

    public boolean equals(java.lang.Object obj)

  Tests this plot for equality with an arbitrary object.

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

### clone

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

  Returns a clone of this plot.

  Specified by:
    `clone` in interface `org.jfree.util.PublicCloneable`
  Overrides:
    `clone` in class `Plot`
  Returns:
    A clone of this plot.
  Throws:
    `java.lang.CloneNotSupportedException` - if the plot cannot be cloned for any reason.