Class SpiderWebPlot

    • 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 Font DEFAULT_LABEL_FONT
        The default series label font.
      • DEFAULT_LABEL_PAINT

        public static final Paint DEFAULT_LABEL_PAINT
        The default series label paint.
      • DEFAULT_LABEL_BACKGROUND_PAINT

        public static final Paint DEFAULT_LABEL_BACKGROUND_PAINT
        The default series label background paint.
      • DEFAULT_LABEL_OUTLINE_PAINT

        public static final Paint DEFAULT_LABEL_OUTLINE_PAINT
        The default series label outline paint.
      • DEFAULT_LABEL_OUTLINE_STROKE

        public static final Stroke DEFAULT_LABEL_OUTLINE_STROKE
        The default series label outline stroke.
      • DEFAULT_LABEL_SHADOW_PAINT

        public static final 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 String getPlotType()
        Returns a short string describing the type of plot.
        Specified by:
        getPlotType in class Plot
        Returns:
        The plot type.
      • 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 PlotChangeEventto all registered listeners.
        Parameters:
        order - the order (null not permitted).
        Throws:
        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()
      • setAxisLinePaint

        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).
        Since:
        1.0.4
        See Also:
        getAxisLinePaint()
      • setAxisLineStroke

        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).
        Since:
        1.0.4
        See Also:
        getAxisLineStroke()
      • getSeriesPaint

        public Paint getSeriesPaint()
        Returns the paint for ALL series in the plot.
        Returns:
        The paint (possibly null).
        See Also:
        setSeriesPaint(Paint)
      • setSeriesPaint

        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:
        getSeriesPaint()
      • getSeriesPaint

        public 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,
                                   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 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​(Paint paint)
        Sets the base series paint.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getBaseSeriesPaint()
      • getSeriesOutlinePaint

        public Paint getSeriesOutlinePaint()
        Returns the outline paint for ALL series in the plot.
        Returns:
        The paint (possibly null).
      • setSeriesOutlinePaint

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

        public 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,
                                          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 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​(Paint paint)
        Sets the base series paint.
        Parameters:
        paint - the paint (null not permitted).
      • getSeriesOutlineStroke

        public Stroke getSeriesOutlineStroke()
        Returns the outline stroke for ALL series in the plot.
        Returns:
        The stroke (possibly null).
      • setSeriesOutlineStroke

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

        public 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,
                                           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 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​(Stroke stroke)
        Sets the base series stroke.
        Parameters:
        stroke - the stroke (null not permitted).
      • getLegendItemShape

        public Shape getLegendItemShape()
        Returns the shape used for legend items.
        Returns:
        The shape (never null).
        See Also:
        setLegendItemShape(Shape)
      • setLegendItemShape

        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).
        See Also:
        getLegendItemShape()
      • getLabelFont

        public Font getLabelFont()
        Returns the series label font.
        Returns:
        The font (never null).
        See Also:
        setLabelFont(Font)
      • setLabelFont

        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:
        getLabelFont()
      • getLabelPaint

        public Paint getLabelPaint()
        Returns the series label paint.
        Returns:
        The paint (never null).
        See Also:
        setLabelPaint(Paint)
      • setLabelPaint

        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:
        getLabelPaint()
      • 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()
      • getWebPoint

        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.
      • draw

        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).
        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​(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
      • getPlotValue

        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).
        See Also:
        getDataExtractOrder()
      • drawLabel

        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.
      • calculateLabelLocation

        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.
      • equals

        public boolean equals​(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.