ARIA · table fallbackAccessibility
Canvas ARIA metadata is paired with a text summary and table fallback.
Graflume · Alpha
Compare differently scaled layers such as revenue bars and a margin-rate line on primary and secondary axes. 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
Compare differently scaled layers such as revenue bars and a margin-rate line on primary and secondary axes.
combo()graflumemultipleChart-specific features
These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Combo chart uses runnable data and options to demonstrate flat portable layers; independent x/x2/y/y2 domains.
StatusLoading
comboflat portable layersindependent x/x2/y/y2 domainscompatible shared primary x/y domains and independent child axes/legendsPareto presetshared multi-view axes/legends/colorbarslayer transformsLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | targetquantitative | valuequantitative |
|---|---|---|
| Jan | 50 | 48 |
| Feb | 54.6 | 53 |
| Mar | 59.2 | 51 |
| Apr | 63.8 | 59 |
| May | 68.4 | 66 |
| Jun | 73 | 70 |
| Jul | 77.6 | 76 |
| Aug | 82.2 | 82 |
| Sep | 86.8 | 80 |
| Oct | 91.4 | 89 |
| Nov | 96 | 96 |
| Dec | 100.6 | 104 |
Browser API
const data = [
{
"base": 37.44,
"category": "Jan",
"close": 48,
"conversion": 18,
"date": "2026-01-01",
"direction": 28,
"down": 78,
"high": 54,
"low": 44,
"lower": 43,
"magnitude": 7,
"minus": 39,
"open": 44,
"plus": 24,
"previous": 44,
"price": 72,
"radius": 20.560000000000002,
"resistance": 57,
"secondary": 36,
"series": "Before launch",
"signal": 48.2,
"speed": 18,
"support": 40,
"target": 50,
"title": "",
"up": 54,
"upper": 55,
"value": 48,
"volume": 1250,
"width": 2.8,
"z": 8
},
{
"base": 41.34,
"category": "Feb",
"close": 53,
"conversion": 20.28,
"date": "2026-02-01",
"direction": 59,
"down": 76.3,
"high": 60,
"low": 48,
"lower": 47,
"magnitude": 9.4,
"minus": 37.9,
"open": 48,
"plus": 25.6,
"previous": 48,
"price": 75.41,
"radius": 21.66,
"resistance": 62,
"secondary": 41.97,
"series": "Before launch",
"signal": 53.16,
"speed": 20.7,
"support": 45,
"target": 54.6,
"title": "",
"up": 56.4,
"upper": 61,
"value": 53,
"volume": 1478,
"width": 3.6999999999999997,
"z": 9.4
},
{
"base": 39.78,
"category": "Mar",
"close": 51,
"conversion": 22.16,
"date": "2026-03-01",
"direction": 90,
"down": 74.6,
"high": 59,
"low": 45,
"lower": 44,
"magnitude": 11.8,
"minus": 36.8,
"open": 53,
"plus": 27.2,
"previous": 53,
"price": 77.85,
"radius": 21.22,
"resistance": 60,
"secondary": 46.2,
"series": "Before launch",
"signal": 51.82,
"speed": 23.4,
"support": 43,
"target": 59.2,
"title": "Spring release",
"up": 58.8,
"upper": 60,
"value": 51,
"volume": 1706,
"width": 4.6,
"z": 10.8
},
{
"base": 46.02,
"category": "Apr",
"close": 59,
"conversion": 23.4,
"date": "2026-04-01",
"direction": 121,
"down": 72.9,
"high": 65,
"low": 55,
"lower": 54,
"magnitude": 14.2,
"minus": 35.7,
"open": 51,
"plus": 28.8,
"previous": 51,
"price": 78.81,
"radius": 22.98,
"resistance": 68,
"secondary": 48,
"series": "Before launch",
"signal": 59.48,
"speed": 26.1,
"support": 51,
"target": 63.8,
"title": "",
"up": 61.2,
"upper": 66,
"value": 59,
"volume": 1724,
"width": 5.5,
"z": 12.2
},
{
"base": 51.48,
"category": "May",
"close": 66,
"conversion": 23.95,
"date": "2026-05-01",
"direction": 152,
"down": 71.2,
"high": 73,
"low": 61,
"lower": 60,
"magnitude": 16.6,
"minus": 34.6,
"open": 59,
"plus": 30.4,
"previous": 59,
"price": 78.47,
"radius": 24.52,
"resistance": 75,
"secondary": 48.17,
"series": "Before launch",
"signal": 66.24,
"speed": 28.8,
"support": 58,
"target": 68.4,
"title": "",
"up": 63.6,
"upper": 74,
"value": 66,
"volume": 1952,
"width": 2.8,
"z": 13.6
},
{
"base": 54.6,
"category": "Jun",
"close": 70,
"conversion": 24.03,
"date": "2026-06-01",
"direction": 183,
"down": 69.5,
"high": 78,
"low": 64,
"lower": 63,
"magnitude": 7,
"minus": 33.5,
"open": 66,
"plus": 32,
"previous": 66,
"price": 77.63,
"radius": 25.4,
"resistance": 79,
"secondary": 48.47,
"series": "Before launch",
"signal": 70.3,
"speed": 31.5,
"support": 62,
"target": 73,
"title": "",
"up": 66,
"upper": 79,
"value": 70,
"volume": 2180,
"width": 3.6999999999999997,
"z": 15
},
{
"base": 59.28,
"category": "Jul",
"close": 76,
"conversion": 24.01,
"date": "2026-07-01",
"direction": 214,
"down": 67.8,
"high": 82,
"low": 72,
"lower": 71,
"magnitude": 9.4,
"minus": 32.4,
"open": 70,
"plus": 33.6,
"previous": 70,
"price": 77.31,
"radius": 26.72,
"resistance": 85,
"secondary": 50.62,
"series": "After launch",
"signal": 76.16,
"speed": 34.2,
"support": 68,
"target": 77.6,
"title": "",
"up": 68.4,
"upper": 83,
"value": 76,
"volume": 2198,
"width": 4.6,
"z": 16.4
},
{
"base": 63.96,
"category": "Aug",
"close": 82,
"conversion": 24.31,
"date": "2026-08-01",
"direction": 245,
"down": 66.1,
"high": 89,
"low": 77,
"lower": 76,
"magnitude": 11.8,
"minus": 31.299999999999997,
"open": 76,
"plus": 35.2,
"previous": 76,
"price": 78.31,
"radius": 28.04,
"resistance": 91,
"secondary": 55.17,
"series": "After launch",
"signal": 82.02,
"speed": 36.900000000000006,
"support": 74,
"target": 82.2,
"title": "",
"up": 70.8,
"upper": 90,
"value": 82,
"volume": 2426,
"width": 5.5,
"z": 17.799999999999997
},
{
"base": 62.4,
"category": "Sep",
"close": 80,
"conversion": 25.21,
"date": "2026-09-01",
"direction": 276,
"down": 64.4,
"high": 88,
"low": 74,
"lower": 73,
"magnitude": 14.2,
"minus": 30.2,
"open": 82,
"plus": 36.8,
"previous": 82,
"price": 80.78,
"radius": 27.6,
"resistance": 89,
"secondary": 61.27,
"series": "After launch",
"signal": 80.68,
"speed": 39.6,
"support": 72,
"target": 86.8,
"title": "Team plan launch",
"up": 73.2,
"upper": 89,
"value": 80,
"volume": 2444,
"width": 2.8,
"z": 19.2
},
{
"base": 69.42,
"category": "Oct",
"close": 89,
"conversion": 26.8,
"date": "2026-10-01",
"direction": 307,
"down": 62.7,
"high": 95,
"low": 85,
"lower": 84,
"magnitude": 16.6,
"minus": 29.1,
"open": 80,
"plus": 38.4,
"previous": 80,
"price": 84.2,
"radius": 29.580000000000002,
"resistance": 98,
"secondary": 67.07,
"series": "After launch",
"signal": 89.24,
"speed": 42.3,
"support": 81,
"target": 91.4,
"title": "",
"up": 75.6,
"upper": 96,
"value": 89,
"volume": 2672,
"width": 3.6999999999999997,
"z": 20.6
},
{
"base": 74.88,
"category": "Nov",
"close": 96,
"conversion": 28.94,
"date": "2026-11-01",
"direction": 338,
"down": 61,
"high": 103,
"low": 91,
"lower": 90,
"magnitude": 7,
"minus": 28,
"open": 89,
"plus": 40,
"previous": 89,
"price": 87.6,
"radius": 31.12,
"resistance": 105,
"secondary": 70.96,
"series": "After launch",
"signal": 96,
"speed": 45,
"support": 88,
"target": 96,
"title": "",
"up": 78,
"upper": 104,
"value": 96,
"volume": 2900,
"width": 4.6,
"z": 22
},
{
"base": 81.12,
"category": "Dec",
"close": 104,
"conversion": 31.27,
"date": "2026-12-01",
"direction": 9,
"down": 59.3,
"high": 112,
"low": 98,
"lower": 97,
"magnitude": 9.4,
"minus": 26.9,
"open": 96,
"plus": 41.6,
"previous": 96,
"price": 90.01,
"radius": 32.879999999999995,
"resistance": 113,
"secondary": 72.44,
"series": "After launch",
"signal": 103.66,
"speed": 47.7,
"support": 96,
"target": 100.6,
"title": "",
"up": 80.4,
"upper": 113,
"value": 104,
"volume": 2918,
"width": 5.5,
"z": 23.4
}
];
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": "Combination example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal"
},
"position": "bottom"
},
"y": {
"format": {
"currency": "KRW",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"notation": "compact",
"type": "currency"
},
"position": "left",
"title": {
"padding": 58,
"text": "Revenue (KRW)"
}
},
"y2": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"offset": 8,
"position": "right",
"title": {
"padding": 58,
"text": "Margin rate"
}
}
},
"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": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "revenue",
"format": "number",
"fractionDigits": 0,
"label": "Revenue",
"prefix": "₩"
},
{
"field": "marginRate",
"format": "percent",
"fractionDigits": 1,
"label": "MarginRate"
}
],
"title": "Combination",
"trigger": "axis"
}
},
"layers": [
{
"id": "volume",
"mark": {
"opacity": 0.72,
"type": "bar"
},
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"axisId": "y",
"field": "target",
"title": "Active teams",
"type": "quantitative"
}
},
{
"id": "actual",
"mark": {
"point": true,
"type": "line"
},
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"axisId": "y2",
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}
],
"locale": "en",
"padding": {
"bottom": 58,
"left": 86,
"right": 94,
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Combo chart uses runnable data and options to demonstrate flat portable layers; independent x/x2/y/y2 domains.",
"text": "Combination"
},
"width": "container"
};
Graflume.combo('#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": "Combination example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal"
},
"position": "bottom"
},
"y": {
"format": {
"currency": "KRW",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"notation": "compact",
"type": "currency"
},
"position": "left",
"title": {
"padding": 58,
"text": "Revenue (KRW)"
}
},
"y2": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"offset": 8,
"position": "right",
"title": {
"padding": 58,
"text": "Margin rate"
}
}
},
"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": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "revenue",
"format": "number",
"fractionDigits": 0,
"label": "Revenue",
"prefix": "₩"
},
{
"field": "marginRate",
"format": "percent",
"fractionDigits": 1,
"label": "MarginRate"
}
],
"title": "Combination",
"trigger": "axis"
}
},
"layers": [
{
"id": "volume",
"mark": {
"opacity": 0.72,
"type": "bar"
},
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"axisId": "y",
"field": "target",
"title": "Active teams",
"type": "quantitative"
}
},
{
"id": "actual",
"mark": {
"point": true,
"type": "line"
},
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"axisId": "y2",
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}
],
"locale": "en",
"padding": {
"bottom": 58,
"left": 86,
"right": 94,
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Combo chart uses runnable data and options to demonstrate flat portable layers; independent x/x2/y/y2 domains.",
"text": "Combination"
},
"width": "container"
}Pareto chart uses runnable data and options to demonstrate z-index; closed Canvas layer/facet/repeat/concat/inset composition.
StatusLoading
paretoz-indexclosed Canvas layer/facet/repeat/concat/inset compositionscoped multi-view semantics and lineagenamed axeslinked view statelayer clippingLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative |
|---|---|
| Insights | 86 |
| Dashboards | 78 |
| Reports | 69 |
| Alerts | 61 |
| Models | 48 |
| Exports | 37 |
Browser API
const data = [
{
"category": "Insights",
"high": 91,
"low": 81,
"previous": 74,
"target": 88,
"value": 86,
"width": 24
},
{
"category": "Dashboards",
"high": 84,
"low": 72,
"previous": 69,
"target": 82,
"value": 78,
"width": 21
},
{
"category": "Reports",
"high": 76,
"low": 63,
"previous": 65,
"target": 74,
"value": 69,
"width": 18
},
{
"category": "Alerts",
"high": 68,
"low": 55,
"previous": 48,
"target": 66,
"value": 61,
"width": 15
},
{
"category": "Models",
"high": 56,
"low": 42,
"previous": 41,
"target": 55,
"value": 48,
"width": 12
},
{
"category": "Exports",
"high": 45,
"low": 31,
"previous": 34,
"target": 44,
"value": 37,
"width": 10
}
];
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": "Combination · Pareto chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal"
},
"position": "bottom"
},
"y": {
"format": {
"currency": "KRW",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"notation": "compact",
"type": "currency"
},
"position": "left",
"title": {
"padding": 58,
"text": "Revenue (KRW)"
}
},
"y2": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"offset": 8,
"position": "right",
"title": {
"padding": 58,
"text": "Margin rate"
}
}
},
"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": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "revenue",
"format": "number",
"fractionDigits": 0,
"label": "Revenue",
"prefix": "₩"
},
{
"field": "marginRate",
"format": "percent",
"fractionDigits": 1,
"label": "MarginRate"
}
],
"title": "Combination · Pareto chart",
"trigger": "axis"
}
},
"locale": "en",
"padding": {
"bottom": 58,
"left": 86,
"right": 94,
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Pareto chart uses runnable data and options to demonstrate z-index; closed Canvas layer/facet/repeat/concat/inset composition.",
"text": "Combination · Pareto chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.pareto('#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": "Combination · Pareto chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal"
},
"position": "bottom"
},
"y": {
"format": {
"currency": "KRW",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"notation": "compact",
"type": "currency"
},
"position": "left",
"title": {
"padding": 58,
"text": "Revenue (KRW)"
}
},
"y2": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"offset": 8,
"position": "right",
"title": {
"padding": 58,
"text": "Margin rate"
}
}
},
"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": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "revenue",
"format": "number",
"fractionDigits": 0,
"label": "Revenue",
"prefix": "₩"
},
{
"field": "marginRate",
"format": "percent",
"fractionDigits": 1,
"label": "MarginRate"
}
],
"title": "Combination · Pareto chart",
"trigger": "axis"
}
},
"locale": "en",
"padding": {
"bottom": 58,
"left": 86,
"right": 94,
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Pareto chart uses runnable data and options to demonstrate z-index; closed Canvas layer/facet/repeat/concat/inset composition.",
"text": "Combination · Pareto chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}Play frames from a time field and stable key, with smooth enter, update, and exit transitions.
StatusLoading
playbacksmooth-transitionsLoading
Row data and zero-copy TypedArray columns share one data contract.
periodordinal | revenuequantitative | marginRatequantitative |
|---|---|---|
| Q1 | 128000000 | 0.18 |
| Q2 | 156000000 | 0.22 |
| Q3 | 149000000 | 0.19 |
| Q4 | 184000000 | 0.27 |
Browser API
const data = [
{
"marginRate": 0.18,
"period": "Q1",
"revenue": 128000000
},
{
"marginRate": 0.22,
"period": "Q2",
"revenue": 156000000
},
{
"marginRate": 0.19,
"period": "Q3",
"revenue": 149000000
},
{
"marginRate": 0.27,
"period": "Q4",
"revenue": 184000000
}
];
const options = {
"axes": {
"x": {
"labels": {
"orientation": "horizontal"
},
"position": "bottom"
},
"y": {
"format": {
"currency": "KRW",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"notation": "compact",
"type": "currency"
},
"position": "left",
"title": {
"padding": 58,
"text": "Revenue (KRW)"
}
},
"y2": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"offset": 8,
"position": "right",
"title": {
"padding": 58,
"text": "Margin rate"
}
}
},
"height": 620,
"interaction": {
"controls": {
"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": true
},
"hover": true,
"playback": {
"autoplay": false,
"field": "period",
"filter": true,
"interval": 1000,
"key": "period",
"loop": false,
"mode": "cumulative",
"rate": 1,
"transition": {
"duration": 600,
"easing": "ease-in-out"
},
"windowSize": 1
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "revenue",
"format": "number",
"fractionDigits": 0,
"label": "Revenue",
"prefix": "₩"
},
{
"field": "marginRate",
"format": "percent",
"fractionDigits": 1,
"label": "MarginRate"
}
],
"title": "Combination · Playback and transitions",
"trigger": "axis"
}
},
"layers": [
{
"id": "revenue",
"mark": {
"type": "bar"
},
"x": {
"axisId": "x",
"field": "period",
"scale": {
"domain": [
"Q1",
"Q2",
"Q3",
"Q4"
]
},
"type": "ordinal"
},
"y": {
"axisId": "y",
"field": "revenue",
"scale": {
"domain": [
0,
200000000
]
},
"type": "quantitative"
}
},
{
"id": "margin",
"mark": {
"point": true,
"type": "line"
},
"x": {
"axisId": "x",
"field": "period",
"scale": {
"domain": [
"Q1",
"Q2",
"Q3",
"Q4"
]
},
"type": "ordinal"
},
"y": {
"axisId": "y2",
"field": "marginRate",
"scale": {
"domain": [
0,
0.3
]
},
"type": "quantitative"
}
}
],
"locale": "en",
"padding": {
"bottom": 58,
"left": 86,
"right": 94,
"top": 24
},
"width": "container"
};
Graflume.combo('#chart', data, options);Portable schema
{
"axes": {
"x": {
"labels": {
"orientation": "horizontal"
},
"position": "bottom"
},
"y": {
"format": {
"currency": "KRW",
"currencyDisplay": "narrowSymbol",
"fractionDigits": 0,
"notation": "compact",
"type": "currency"
},
"position": "left",
"title": {
"padding": 58,
"text": "Revenue (KRW)"
}
},
"y2": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"offset": 8,
"position": "right",
"title": {
"padding": 58,
"text": "Margin rate"
}
}
},
"height": 620,
"interaction": {
"controls": {
"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": true
},
"hover": true,
"playback": {
"autoplay": false,
"field": "period",
"filter": true,
"interval": 1000,
"key": "period",
"loop": false,
"mode": "cumulative",
"rate": 1,
"transition": {
"duration": 600,
"easing": "ease-in-out"
},
"windowSize": 1
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "revenue",
"format": "number",
"fractionDigits": 0,
"label": "Revenue",
"prefix": "₩"
},
{
"field": "marginRate",
"format": "percent",
"fractionDigits": 1,
"label": "MarginRate"
}
],
"title": "Combination · Playback and transitions",
"trigger": "axis"
}
},
"layers": [
{
"id": "revenue",
"mark": {
"type": "bar"
},
"x": {
"axisId": "x",
"field": "period",
"scale": {
"domain": [
"Q1",
"Q2",
"Q3",
"Q4"
]
},
"type": "ordinal"
},
"y": {
"axisId": "y",
"field": "revenue",
"scale": {
"domain": [
0,
200000000
]
},
"type": "quantitative"
}
},
{
"id": "margin",
"mark": {
"point": true,
"type": "line"
},
"x": {
"axisId": "x",
"field": "period",
"scale": {
"domain": [
"Q1",
"Q2",
"Q3",
"Q4"
]
},
"type": "ordinal"
},
"y": {
"axisId": "y2",
"field": "marginRate",
"scale": {
"domain": [
0,
0.3
]
},
"type": "quantitative"
}
}
],
"locale": "en",
"padding": {
"bottom": 58,
"left": 86,
"right": 94,
"top": 24
},
"width": "container"
}Catalog
The source-controlled catalog maps callable modes in this family and compatibility identifiers to their canonical modes. This table contains executable entries only.
2 modes · 1 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
combo | Combo chart | combo() | default | multiple | canvas |
pareto | Pareto chart | pareto() | pareto | pareto | canvas |
| Identifier | Canonical mode ID |
|---|---|
pareto | pareto |
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.