Chart.js/docs/charts/polar.md
Evert Timberg ed2b96eeaf
Switch docs to Vuepress to match other chart.js repositories (#8751)
* Initial work

* Update doc commands

* Updated sidebar config

* Move docs

* Update theme version and enable

* Convert to chart.js sample

* Update scripts to point to local build

* Chart.js from local build

* Simplify getting-started example

* Axis docs updated except for imported content

* Common ticks import works

* Chart type docs ported to editor plugin

* Last pages to use editor

* Fix small errors

* Frontmatter title to heading

* Remove duplicate example

* Update sidebar

* Add paths

* Remove paths

* Add getting-started back

* Update menus and add copyright to license section of the docs

* Add GA plugin

* Style sub-groups

* Remove unneeded license page since it is covered on the main page

* Remove docusaurus readme page

* Remove docusaurus files

* Fix issues in docs

* Build and deploy scripts for docs work

* Conditional base URL for nice local testing

* Use eslint-plugin-markdown

* Remove hard coded lines

* Remove mentions of docusaurus

Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>
2021-03-30 10:32:39 -04:00

5.0 KiB

Polar Area Chart

Polar area charts are similar to pie charts, but each segment has the same angle - the radius of the segment differs depending on the value.

This type of chart is often useful when we want to show a comparison data similar to a pie chart, but also show a scale of values for context.

// <block:setup:1>
const data = {
  labels: [
    'Red',
    'Green',
    'Yellow',
    'Grey',
    'Blue'
  ],
  datasets: [{
    label: 'My First Dataset',
    data: [11, 16, 7, 3, 14],
    backgroundColor: [
      'rgb(255, 99, 132)',
      'rgb(75, 192, 192)',
      'rgb(255, 205, 86)',
      'rgb(201, 203, 207)',
      'rgb(54, 162, 235)'
    ]
  }]
};
// </block:setup>

// <block:config:0>
const config = {
  type: 'polarArea',
  data: data,
};
// </block:config>

module.exports = {
  actions: [],
  config: config,
};

Example Usage

new Chart(ctx, {
    data: data,
    type: 'polarArea',
    options: options
});

Dataset Properties

The following options can be included in a polar area chart dataset to configure options for that specific dataset.

Name Type Scriptable Indexable Default
backgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
borderAlign string Yes Yes 'center'
borderColor Color Yes Yes '#fff'
borderWidth number Yes Yes 2
clip number|object - - undefined
data number[] - - required
hoverBackgroundColor Color Yes Yes undefined
hoverBorderColor Color Yes Yes undefined
hoverBorderWidth number Yes Yes undefined

General

Name Description
clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

Styling

The style of each arc can be controlled with the following properties:

Name Description
backgroundColor arc background color.
borderColor arc border color.
borderWidth arc border width (in pixels).

All these values, if undefined, fallback to the associated elements.arc.* options.

Border Alignment

The following values are supported for borderAlign.

  • 'center' (default)
  • 'inner'

When 'center' is set, the borders of arcs next to each other will overlap. When 'inner' is set, it is guaranteed that all the borders do not overlap.

Interactions

The interaction with each arc can be controlled with the following properties:

Name Description
hoverBackgroundColor arc background color when hovered.
hoverBorderColor arc border color when hovered.
hoverBorderWidth arc border width when hovered (in pixels).

All these values, if undefined, fallback to the associated elements.arc.* options.

Config Options

These are the customisation options specific to Polar Area charts. These options are looked up on access, and form together with the global chart default options the options of the chart.

Name Type Default Description
animation.animateRotate boolean true If true, the chart will animate in with a rotation animation. This property is in the options.animation object.
animation.animateScale boolean true If true, will animate scaling the chart from the center outwards.

The polar area chart uses the radialLinear scale. Additional configuration is provided via the scale.

Default Options

We can also change these default values for each PolarArea type that is created, this object is available at Chart.overrides.polarArea. Changing the global options only affects charts created after the change. Existing charts are not changed.

For example, to configure all new polar area charts with animateScale = false you would do:

Chart.overrides.polarArea.animation.animateScale = false;

Data Structure

For a polar area chart, datasets need to contain an array of data points. The data points should be a number, Chart.js will total all of the numbers and calculate the relative proportion of each.

You also need to specify an array of labels so that tooltips appear correctly for each slice.

data = {
    datasets: [{
        data: [10, 20, 30]
    }],

    // These labels appear in the legend and in the tooltips when hovering different arcs
    labels: [
        'Red',
        'Yellow',
        'Blue'
    ]
};