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

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(CategoryDataset dataset)` Creates a new radar plot with default attributes.
`SpiderWebPlot(CategoryDataset data, org.jfree.util.TableOrder type)` Creates a new radar plot overriding the data extraction order.

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
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, 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.
`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).
`org.jfree.util.Rotation` `getDirection()` Returns the direction in which the radar axes are drawn (clockwise or anti-clockwise).
`double` `getInteriorGap()` Returns the interior gap, measured as a percentage of the available drawing space.
`java.awt.Font` `getLabelFont()` Returns the series label font.
`CategoryLabelGenerator` `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.
`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.
`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` `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` `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` `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(CategoryLabelGenerator 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.
`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` `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, clone, datasetChanged, draw, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, equals, fillBackground, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundPaint, getDataAreaRatio, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, isSubplot, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundPaint, setDataAreaRatio, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setParent, zoom`

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

Field Detail

### DEFAULT_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(CategoryDataset dataset)

  Creates a new radar plot with default attributes.

  Parameters:
    `dataset` - the dataset.

### SpiderWebPlot

    public SpiderWebPlot(CategoryDataset data,
                         org.jfree.util.TableOrder type)

  Creates a new radar plot overriding the data extraction order.

  Parameters:
    `data` - the data.
    `type` - controls how radar data is extracted (BY_ROW or 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.

### isWebFilled

    public boolean isWebFilled()

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

  Returns:
    A boolean.

### setWebFilled

    public void setWebFilled(boolean flag)

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

  Parameters:
    `flag` - the flag.

### getDataExtractOrder

    public org.jfree.util.TableOrder getDataExtractOrder()

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

  Returns:
    The data extract order (never `null`).

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

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

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

### getMaxValue

    public double getMaxValue()

  Returns the maximum value any category axis can take.

  Returns:
    The maximum value.

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

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

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

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

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

### getSeriesPaint

    public java.awt.Paint getSeriesPaint()

  Returns the paint for ALL series in the plot.

  Returns:
    The paint (possibly `null`).

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

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

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

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

### setBaseSeriesPaint

    public void setBaseSeriesPaint(java.awt.Paint paint)

  Sets the base series paint.

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

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

### setLegendItemShape

    public void setLegendItemShape(java.awt.Shape shape)

  Sets the shape used for legend items.

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

### getLabelFont

    public java.awt.Font getLabelFont()

  Returns the series label font.

  Returns:
    The font (never `null`).

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

### getLabelPaint

    public java.awt.Paint getLabelPaint()

  Returns the series label paint.

  Returns:
    The paint (never `null`).

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

### getLabelGenerator

    public CategoryLabelGenerator getLabelGenerator()

  Returns the label generator.

  Returns:
    The label generator (never `null`).

### setLabelGenerator

    public void setLabelGenerator(CategoryLabelGenerator generator)

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

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

### 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 plotArea,
                     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.
    `plotArea` - the area within which the plot should be drawn.
    `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

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