Class WPieChart


  • public class WPieChart
    extends WAbstractChart
    A pie chart.

    A pie chart renders a single data series as segments of a circle, so that the area of each segment is proportional to the value in the data series.

    To use a pie chart, you need to set a model using WAbstractChart#setModel(), and use setLabelsColumn() and setDataColumn() to specify the model column that contains the category labels and data.

    The pie chart may be customized visually by enabling a 3D effect (setPerspectiveEnabled()), or by specifying the angle of the first segment. One or more segments may be exploded, which separates the segment from the rest of the pie chart, using setExplode().

    The segments may be labeled in various ways using setDisplayLabels().

    CSS

    Styling through CSS is not applicable.

    Example of a pie chart

    See Also:
    WCartesianChart
    • Method Detail

      • setDataColumn

        public void setDataColumn​(int modelColumn)
        Sets the model column that holds the data.

        The data column should contain data that can be converted to a number, but should not necessarily be of a number type, see also StringUtils.asNumber(Object).

        The default value is -1 (not defined).

        See Also:
        setLabelsColumn(int modelColumn)
      • setBrush

        public void setBrush​(int modelRow,
                             WBrush brush)
        Customizes the brush used for a pie segment.

        By default, the brush is taken from the WAbstractChart.getPalette(). You can use this method to override the palette's brush for a particular modelRow.

      • setExplode

        public void setExplode​(int modelRow,
                               double factor)
        Sets the explosion factor for a pie segment.

        Separates the segment corresponding to model row modelRow from the rest of the pie. The factor is a positive number that represents the distance from the center as a fraction of the pie radius. Thus, 0 corresponds to no separation, and 0.1 to a 10% separation, and 1 to a separation where the segment tip is on the outer perimeter of the pie.

        The default value is 0.

      • setPerspectiveEnabled

        public void setPerspectiveEnabled​(boolean enabled,
                                          double height)
        Enables a 3D perspective effect on the pie.

        A 3D perspective effect is added, which may be customized by specifying the simulated height of the pie. The height is defined as a fraction of the pie radius.

        The default value is false.

      • setShadowEnabled

        public void setShadowEnabled​(boolean enabled)
        Enables a shadow effect.

        A soft shadow effect is added.

        The default value is false.

      • setStartAngle

        public void setStartAngle​(double startAngle)
        Sets the angle of the first segment.

        The default value is 45 degrees.

      • setAvoidLabelRendering

        public void setAvoidLabelRendering​(double avoidLabelRendering)
        Sets the percentage value to avoid rendering of label texts.

        The default value is 0 percent.

      • setLabelFormat

        public void setLabelFormat​(java.lang.CharSequence format)
        Sets the label format.

        Sets a format string which is used to format label (percentage) values.

        The format string must be a format string that is accepted by snprintf() and which formats one double.

        The default value is "%.3g%%".

        See Also:
        getLabelFormat()
      • createLegendItemWidget

        public WWidget createLegendItemWidget​(int index,
                                              java.util.EnumSet<LabelOption> options)
        Creates a widget which renders the a legend item.

        Depending on the passed LabelOption flags, the legend item widget, will contain a text (with or without the percentage) and/or a span with the segment's color.

      • addDataPointArea

        public void addDataPointArea​(int row,
                                     int column,
                                     WAbstractArea area)
        Adds a data point area (used for displaying e.g. tooltips).

        You may want to specialize this is if you wish to modify (or delete) the area.

        Note: Currently, an area is only created if the ItemDataRole.ToolTip data at the data point is not empty.

      • paint

        public void paint​(WPainter painter,
                          WRectF rectangle)
        Description copied from class: WAbstractChart
        Paint the chart in a rectangle of the given painter.

        Paints the chart inside the painter, in the area indicated by rectangle. When rectangle is a null rectangle, the entire painter WPainter.getWindow() is used.

        Specified by:
        paint in class WAbstractChart
      • paintEvent

        protected void paintEvent​(WPaintDevice paintDevice)
        Description copied from class: WPaintedWidget
        Paints the widget.

        You should reimplement this method to paint the contents of the widget, using the given paintDevice.

        Specified by:
        paintEvent in class WPaintedWidget
      • drawLabel

        protected void drawLabel​(WPainter painter,
                                 WRectF rect,
                                 java.util.EnumSet<AlignmentFlag> alignmentFlags,
                                 java.lang.CharSequence text,
                                 int row)
        drawLabel draw a label on the chart. Will be called by paint.

        You may want to specialize this if you wish to replace the label by a widget. @see WPieChart#createLabelWidget(WWidget textWidget, WPainter painter, WRectF rect, EnumSet alignmentFlags)