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, AnnotationChangeListener, 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

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

Constructors
Constructor and Description
`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

Methods
`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 spider web 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, annotationChanged, axisChanged, createAndAddEntity, datasetChanged, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, isNotify, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setNotify, 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 spider web chart.

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

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