public class

SpiderWebPlot

extends Plot
implements Serializable Cloneable
java.lang.Object
   ↳ org.jfree.chart.plot.Plot
     ↳ org.jfree.chart.plot.SpiderWebPlot

Class Overview

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.

Summary

Constants
double DEFAULT_AXIS_LABEL_GAP The default axis label gap (currently 10%).
double DEFAULT_HEAD The default head radius percent (currently 1%).
double DEFAULT_INTERIOR_GAP The default interior gap.
double DEFAULT_MAX_VALUE The default maximum value plotted - forces the plot to evaluate the maximum from the data passed in
double DEFAULT_START_ANGLE The default starting angle for the radar chart axes.
double MAX_INTERIOR_GAP The maximum interior gap (currently 40%).
[Expand]
Inherited Constants
From class org.jfree.chart.plot.Plot
Fields
public static final Paint DEFAULT_LABEL_BACKGROUND_PAINT The default series label background paint.
public static final Font DEFAULT_LABEL_FONT The default series label font.
public static final Paint DEFAULT_LABEL_OUTLINE_PAINT The default series label outline paint.
public static final Stroke DEFAULT_LABEL_OUTLINE_STROKE The default series label outline stroke.
public static final Paint DEFAULT_LABEL_PAINT The default series label paint.
public static final Paint DEFAULT_LABEL_SHADOW_PAINT The default series label shadow paint.
protected double headPercent The head radius as a percentage of the available drawing area.
[Expand]
Inherited Fields
From class org.jfree.chart.plot.Plot
Public Constructors
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, TableOrder extract)
Creates a new spider web plot with the given dataset.
Public Methods
Object clone()
Returns a clone of this plot.
void draw(Graphics2D g2, Rectangle2D area, Point2D anchor, PlotState parentState, PlotRenderingInfo info)
Draws the plot on a Java 2D graphics device (such as the screen or a printer).
boolean equals(Object obj)
Tests this plot for equality with an arbitrary object.
double getAxisLabelGap()
Returns the axis label gap.
Paint getAxisLinePaint()
Returns the paint used to draw the axis lines.
Stroke getAxisLineStroke()
Returns the stroke used to draw the axis lines.
Paint getBaseSeriesOutlinePaint()
Returns the base series paint.
Stroke getBaseSeriesOutlineStroke()
Returns the base series stroke.
Paint getBaseSeriesPaint()
Returns the base series paint.
TableOrder getDataExtractOrder()
Returns the data extract order (by row or by column).
CategoryDataset getDataset()
Returns the dataset.
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.
Font getLabelFont()
Returns the series label font.
CategoryItemLabelGenerator getLabelGenerator()
Returns the label generator.
Paint getLabelPaint()
Returns the series label paint.
Shape getLegendItemShape()
Returns the shape used for legend items.
LegendItemCollection getLegendItems()
Returns a collection of legend items for the radar chart.
double getMaxValue()
Returns the maximum value any category axis can take.
String getPlotType()
Returns a short string describing the type of plot.
Paint getSeriesOutlinePaint()
Returns the outline paint for ALL series in the plot.
Paint getSeriesOutlinePaint(int series)
Returns the paint for the specified series.
Stroke getSeriesOutlineStroke(int series)
Returns the stroke for the specified series.
Stroke getSeriesOutlineStroke()
Returns the outline stroke for ALL series in the plot.
Paint getSeriesPaint(int series)
Returns the paint for the specified series.
Paint getSeriesPaint()
Returns the paint for ALL series in the plot.
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.
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(Paint paint)
Sets the paint used to draw the axis lines and sends a PlotChangeEvent to all registered listeners.
void setAxisLineStroke(Stroke stroke)
Sets the stroke used to draw the axis lines and sends a PlotChangeEvent to all registered listeners.
void setBaseSeriesOutlinePaint(Paint paint)
Sets the base series paint.
void setBaseSeriesOutlineStroke(Stroke stroke)
Sets the base series stroke.
void setBaseSeriesPaint(Paint paint)
Sets the base series paint.
void setDataExtractOrder(TableOrder order)
Sets the data extract order (by row or by column) and sends a PlotChangeEventto all registered listeners.
void setDataset(CategoryDataset dataset)
Sets the dataset used by the plot and sends a PlotChangeEvent to all registered listeners.
void setDirection(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(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(Paint paint)
Sets the series label paint and sends a PlotChangeEvent to all registered listeners.
void setLegendItemShape(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(Paint paint)
Sets the outline paint for ALL series in the plot.
void setSeriesOutlinePaint(int series, Paint paint)
Sets the paint used to fill a series of the radar and sends a PlotChangeEvent to all registered listeners.
void setSeriesOutlineStroke(int series, Stroke stroke)
Sets the stroke used to fill a series of the radar and sends a PlotChangeEvent to all registered listeners.
void setSeriesOutlineStroke(Stroke stroke)
Sets the outline stroke for ALL series in the plot.
void setSeriesPaint(Paint paint)
Sets the paint for ALL series in the plot.
void setSeriesPaint(int series, Paint paint)
Sets the paint used to fill a series of the radar and sends a PlotChangeEvent to all registered listeners.
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.
Protected Methods
Point2D calculateLabelLocation(Rectangle2D labelBounds, double ascent, Rectangle2D plotArea, double startAngle)
Returns the location for a label
void drawLabel(Graphics2D g2, Rectangle2D plotArea, double value, int cat, double startAngle, double extent)
Draws the label for one axis.
void drawRadarPoly(Graphics2D g2, Rectangle2D plotArea, Point2D centre, PlotRenderingInfo info, int series, int catCount, double headH, double headW)
Draws a radar plot polygon.
Number getPlotValue(int series, int cat)
Returns the value to be plotted at the interseries of the series and the category.
Point2D getWebPoint(Rectangle2D bounds, double angle, double length)
Returns a cartesian point from a polar angle, length and bounding box
[Expand]
Inherited Methods
From class org.jfree.chart.plot.Plot
From class java.lang.Object
From interface org.jfree.chart.LegendItemSource
From interface org.jfree.chart.event.AxisChangeListener
From interface org.jfree.chart.event.MarkerChangeListener
From interface org.jfree.data.general.DatasetChangeListener

Constants

public static final double DEFAULT_AXIS_LABEL_GAP

The default axis label gap (currently 10%).

Constant Value: 0.1

public static final double DEFAULT_HEAD

The default head radius percent (currently 1%).

Constant Value: 0.01

public static final double DEFAULT_INTERIOR_GAP

The default interior gap.

Constant Value: 0.25

public static final double DEFAULT_MAX_VALUE

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

Constant Value: -1.0

public static final double DEFAULT_START_ANGLE

The default starting angle for the radar chart axes.

Constant Value: 90.0

public static final double MAX_INTERIOR_GAP

The maximum interior gap (currently 40%).

Constant Value: 0.4

Fields

public static final Paint DEFAULT_LABEL_BACKGROUND_PAINT

The default series label background paint.

public static final Font DEFAULT_LABEL_FONT

The default series label font.

public static final Paint DEFAULT_LABEL_OUTLINE_PAINT

The default series label outline paint.

public static final Stroke DEFAULT_LABEL_OUTLINE_STROKE

The default series label outline stroke.

public static final Paint DEFAULT_LABEL_PAINT

The default series label paint.

public static final Paint DEFAULT_LABEL_SHADOW_PAINT

The default series label shadow paint.

protected double headPercent

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

Public Constructors

public SpiderWebPlot ()

Creates a default plot with no dataset.

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

public SpiderWebPlot (CategoryDataset dataset, 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).

Public Methods

public Object clone ()

Returns a clone of this plot.

Returns
  • A clone of this plot.
Throws
CloneNotSupportedException if the plot cannot be cloned for any reason.

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

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

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.

public boolean equals (Object obj)

Tests this plot for equality with an arbitrary object.

Parameters
obj the object (null permitted).
Returns
  • A boolean.

public double getAxisLabelGap ()

Returns the axis label gap.

Returns
  • The axis label gap.

public Paint getAxisLinePaint ()

Returns the paint used to draw the axis lines.

Returns
  • The paint used to draw the axis lines (never null).

public Stroke getAxisLineStroke ()

Returns the stroke used to draw the axis lines.

Returns
  • The stroke used to draw the axis lines (never null).

public Paint getBaseSeriesOutlinePaint ()

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

Returns
  • The paint (never null).

public Stroke getBaseSeriesOutlineStroke ()

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

Returns
  • The stroke (never null).

public Paint getBaseSeriesPaint ()

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

Returns
  • The paint (never null).

public TableOrder getDataExtractOrder ()

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

Returns
  • The data extract order (never null).

public CategoryDataset getDataset ()

Returns the dataset.

Returns
  • The dataset (possibly null).

public Rotation getDirection ()

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

Returns
  • The direction (never null).

public double getHeadPercent ()

Returns the head percent.

Returns
  • The head percent.

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

public Font getLabelFont ()

Returns the series label font.

Returns
  • The font (never null).

public CategoryItemLabelGenerator getLabelGenerator ()

Returns the label generator.

Returns
  • The label generator (never null).

public Paint getLabelPaint ()

Returns the series label paint.

Returns
  • The paint (never null).

public Shape getLegendItemShape ()

Returns the shape used for legend items.

Returns
  • The shape (never null).

public LegendItemCollection getLegendItems ()

Returns a collection of legend items for the radar chart.

Returns
  • The legend items.

public double getMaxValue ()

Returns the maximum value any category axis can take.

Returns
  • The maximum value.

public String getPlotType ()

Returns a short string describing the type of plot.

Returns
  • The plot type.

public Paint getSeriesOutlinePaint ()

Returns the outline paint for ALL series in the plot.

Returns
  • The paint (possibly null).

public Paint getSeriesOutlinePaint (int series)

Returns the paint for the specified series.

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

public Stroke getSeriesOutlineStroke (int series)

Returns the stroke for the specified series.

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

public Stroke getSeriesOutlineStroke ()

Returns the outline stroke for ALL series in the plot.

Returns
  • The stroke (possibly null).

public Paint getSeriesPaint (int series)

Returns the paint for the specified series.

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

public Paint getSeriesPaint ()

Returns the paint for ALL series in the plot.

Returns
  • The paint (possibly null).

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.

public CategoryToolTipGenerator getToolTipGenerator ()

Returns the tool tip generator for the plot.

Returns
  • The tool tip generator (possibly null).

public CategoryURLGenerator getURLGenerator ()

Returns the URL generator for the plot.

Returns
  • The URL generator (possibly null).

public boolean isWebFilled ()

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

Returns
  • A boolean.

public void setAxisLabelGap (double gap)

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

Parameters
gap the gap.

public void setAxisLinePaint (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).

public void setAxisLineStroke (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).

public void setBaseSeriesOutlinePaint (Paint paint)

Sets the base series paint.

Parameters
paint the paint (null not permitted).

public void setBaseSeriesOutlineStroke (Stroke stroke)

Sets the base series stroke.

Parameters
stroke the stroke (null not permitted).

public void setBaseSeriesPaint (Paint paint)

Sets the base series paint.

Parameters
paint the paint (null not permitted).

public void setDataExtractOrder (TableOrder order)

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

Parameters
order the order (null not permitted).
Throws
IllegalArgumentException if order is null.

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

public void setDirection (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

public void setHeadPercent (double percent)

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

Parameters
percent the percent.
See Also

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

public void setLabelFont (Font font)

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

Parameters
font the font (null not permitted).
See Also

public void setLabelGenerator (CategoryItemLabelGenerator generator)

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

Parameters
generator the generator (null not permitted).

public void setLabelPaint (Paint paint)

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

Parameters
paint the paint (null not permitted).
See Also

public void setLegendItemShape (Shape shape)

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

Parameters
shape the shape (null not permitted).

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

public void setSeriesOutlinePaint (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).

public void setSeriesOutlinePaint (int series, 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).

public void setSeriesOutlineStroke (int series, 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).

public void setSeriesOutlineStroke (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).

public void setSeriesPaint (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

public void setSeriesPaint (int series, 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).

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

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

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

public void setWebFilled (boolean flag)

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

Parameters
flag the flag.
See Also

Protected Methods

protected Point2D calculateLabelLocation (Rectangle2D labelBounds, double ascent, 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.

protected void drawLabel (Graphics2D g2, 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.

protected void drawRadarPoly (Graphics2D g2, Rectangle2D plotArea, 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

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

protected Point2D getWebPoint (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.