ARIA · table fallbackAccessibility
Canvas ARIA metadata is paired with a text summary and table fallback.
Graflume · Alpha
Show part-to-whole proportions for a small set of categories. These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Chart family · Default families
Show part-to-whole proportions for a small set of categories.
pie()graflumepieChart-specific features
These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Donut chart uses runnable data and options to demonstrate pie and donut; center label/value.
StatusLoading
donutpie and donutcenter label/valuedense label solverkeyboard slice traversalLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative |
|---|---|
| Organic search | 38 |
| Direct | 27 |
| Product referrals | 18 |
| Community | 11 |
| Campaigns | 6 |
Browser API
const data = [
{
"category": "Organic search",
"radius": 34,
"value": 38
},
{
"category": "Direct",
"radius": 28,
"value": 27
},
{
"category": "Product referrals",
"radius": 23,
"value": 18
},
{
"category": "Community",
"radius": 18,
"value": 11
},
{
"category": "Campaigns",
"radius": 13,
"value": 6
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Pie / Donut example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Pie / Donut",
"trigger": "mark"
}
},
"locale": "en",
"mark": {
"options": {
"innerRadius": 0.56
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Donut chart uses runnable data and options to demonstrate pie and donut; center label/value.",
"text": "Pie / Donut"
},
"width": "container",
"x": {
"field": "category",
"title": "Channel",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Share (%)",
"type": "quantitative"
}
};
Graflume.donut('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Pie / Donut example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Pie / Donut",
"trigger": "mark"
}
},
"locale": "en",
"mark": {
"options": {
"innerRadius": 0.56
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Donut chart uses runnable data and options to demonstrate pie and donut; center label/value.",
"text": "Pie / Donut"
},
"width": "container",
"x": {
"field": "category",
"title": "Channel",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Share (%)",
"type": "quantitative"
}
}Pie chart uses runnable data and options to demonstrate start angle and direction; leader labels.
StatusLoading
piestart angle and directionleader labelszero and negative policyLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative |
|---|---|
| Organic search | 38 |
| Direct | 27 |
| Product referrals | 18 |
| Community | 11 |
| Campaigns | 6 |
Browser API
const data = [
{
"category": "Organic search",
"radius": 34,
"value": 38
},
{
"category": "Direct",
"radius": 28,
"value": 27
},
{
"category": "Product referrals",
"radius": 23,
"value": 18
},
{
"category": "Community",
"radius": 18,
"value": 11
},
{
"category": "Campaigns",
"radius": 13,
"value": 6
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Pie / Donut · Pie chart example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Pie / Donut · Pie chart",
"trigger": "mark"
}
},
"locale": "en",
"mark": {},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Pie chart uses runnable data and options to demonstrate start angle and direction; leader labels.",
"text": "Pie / Donut · Pie chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Channel",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Share (%)",
"type": "quantitative"
}
};
Graflume.pie('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Pie / Donut · Pie chart example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Pie / Donut · Pie chart",
"trigger": "mark"
}
},
"locale": "en",
"mark": {},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Pie chart uses runnable data and options to demonstrate start angle and direction; leader labels.",
"text": "Pie / Donut · Pie chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Channel",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Share (%)",
"type": "quantitative"
}
}Variable radius pie chart uses runnable data and options to demonstrate inner radius; variable-radius pie.
StatusLoading
variable-pieinner radiusvariable-radius pieminimum slice, sorting and paddingLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative | radiusquantitative |
|---|---|---|
| Organic search | 38 | 34 |
| Direct | 27 | 28 |
| Product referrals | 18 | 23 |
| Community | 11 | 18 |
| Campaigns | 6 | 13 |
Browser API
const data = [
{
"category": "Organic search",
"radius": 34,
"value": 38
},
{
"category": "Direct",
"radius": 28,
"value": 27
},
{
"category": "Product referrals",
"radius": 23,
"value": 18
},
{
"category": "Community",
"radius": 18,
"value": 11
},
{
"category": "Campaigns",
"radius": 13,
"value": 6
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Pie / Donut · Variable radius pie chart example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
},
{
"field": "radius",
"format": "number",
"label": "Radius"
}
],
"title": "Pie / Donut · Variable radius pie chart",
"trigger": "mark"
}
},
"locale": "en",
"mark": {
"fields": {
"radius": "radius"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Variable radius pie chart uses runnable data and options to demonstrate inner radius; variable-radius pie.",
"text": "Pie / Donut · Variable radius pie chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Channel",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Share (%)",
"type": "quantitative"
}
};
Graflume.variablePie('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Pie / Donut · Variable radius pie chart example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
},
{
"field": "radius",
"format": "number",
"label": "Radius"
}
],
"title": "Pie / Donut · Variable radius pie chart",
"trigger": "mark"
}
},
"locale": "en",
"mark": {
"fields": {
"radius": "radius"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Variable radius pie chart uses runnable data and options to demonstrate inner radius; variable-radius pie.",
"text": "Pie / Donut · Variable radius pie chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Channel",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Share (%)",
"type": "quantitative"
}
}Catalog
The source-controlled catalog maps callable modes in this family and compatibility identifiers to their canonical modes. This table contains executable entries only.
3 modes · 2 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
donut | Donut chart | donut() | donut | pie | canvas |
pie | Pie chart | pie() | default | pie | canvas |
variable-pie | Variable radius pie chart | variablePie() | variable-pie | variable-pie | canvas |
| Identifier | Canonical mode ID |
|---|---|
pie | pie |
variablepie | variable-pie |
Manual
ARIA · table fallbackCanvas ARIA metadata is paired with a text summary and table fallback.
standard · large · ultraStandard, large, and ultra profiles bound rendering work.