ARIA · table fallbackAccessibility
Canvas ARIA metadata is paired with a text summary and table fallback.
Graflume · Alpha
Encode two coordinates, magnitude, and an optional group in each bubble. 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
Encode two coordinates, magnitude, and an optional group in each bubble.
bubble()graflumebubbleChart-specific features
These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Bubble chart uses runnable data and options to demonstrate square-root radius; color field.
StatusLoading
bubblesquare-root radiuscolor fieldpacked collision layout and labelszero and negative policyLoading
Row data and zero-copy TypedArray columns share one data contract.
xquantitative | yquantitative | sizequantitative | groupordinal |
|---|---|---|---|
| 14 | 38 | 28 | Starter |
| 20 | 45 | 34 | Starter |
| 25 | 41 | 31 | Starter |
| 38 | 57 | 64 | Growth |
| 45 | 63 | 78 | Growth |
| 50 | 55 | 70 | Growth |
| 64 | 72 | 112 | Scale |
| 72 | 79 | 128 | Scale |
| 78 | 70 | 118 | Scale |
| 61 | 88 | 52 | Opportunity |
Browser API
const data = [
{
"group": "Starter",
"name": "Atlas Lab",
"size": 28,
"x": 14,
"y": 38,
"z": 7
},
{
"group": "Starter",
"name": "Beacon Co",
"size": 34,
"x": 20,
"y": 45,
"z": 10
},
{
"group": "Starter",
"name": "Civic Data",
"size": 31,
"x": 25,
"y": 41,
"z": 12
},
{
"group": "Growth",
"name": "Delta Ops",
"size": 64,
"x": 38,
"y": 57,
"z": 15
},
{
"group": "Growth",
"name": "Ember Labs",
"size": 78,
"x": 45,
"y": 63,
"z": 18
},
{
"group": "Growth",
"name": "Foundry BI",
"size": 70,
"x": 50,
"y": 55,
"z": 21
},
{
"group": "Scale",
"name": "Harbor AI",
"size": 112,
"x": 64,
"y": 72,
"z": 25
},
{
"group": "Scale",
"name": "Lattice Co",
"size": 128,
"x": 72,
"y": 79,
"z": 28
},
{
"group": "Scale",
"name": "Meridian",
"size": 118,
"x": 78,
"y": 70,
"z": 31
},
{
"group": "Opportunity",
"name": "Northstar",
"size": 52,
"x": 61,
"y": 88,
"z": 34
}
];
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": "Bubble example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "end",
"padding": 36,
"text": "Reach"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Engagement"
}
}
},
"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": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "size",
"format": "number",
"label": "Size"
},
{
"field": "group",
"format": "auto",
"label": "Group"
}
],
"title": "Bubble",
"trigger": "mark"
}
},
"locale": "en",
"mark": {
"fields": {
"color": "group",
"size": "size"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bubble chart uses runnable data and options to demonstrate square-root radius; color field.",
"text": "Bubble"
},
"width": "container",
"x": {
"field": "x",
"title": "Engagement score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Satisfaction score",
"type": "quantitative"
}
};
Graflume.bubble('#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": "Bubble example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "end",
"padding": 36,
"text": "Reach"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Engagement"
}
}
},
"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": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "size",
"format": "number",
"label": "Size"
},
{
"field": "group",
"format": "auto",
"label": "Group"
}
],
"title": "Bubble",
"trigger": "mark"
}
},
"locale": "en",
"mark": {
"fields": {
"color": "group",
"size": "size"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bubble chart uses runnable data and options to demonstrate square-root radius; color field.",
"text": "Bubble"
},
"width": "container",
"x": {
"field": "x",
"title": "Engagement score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Satisfaction score",
"type": "quantitative"
}
}Packed bubble chart uses runnable data and options to demonstrate bounded radius; frame filtering.
StatusLoading
packed-bubblebounded radiusframe filteringabsolute-area scale contractexplicit size guideLoading
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": "Bubble · Packed bubble chart example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "end",
"padding": 36,
"text": "Reach"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Engagement"
}
}
},
"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": "Bubble · Packed bubble chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Packed bubble chart uses runnable data and options to demonstrate bounded radius; frame filtering.",
"text": "Bubble · Packed bubble chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Engagement score",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Satisfaction score",
"type": "quantitative"
}
};
Graflume.packedBubble('#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": "Bubble · Packed bubble chart example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "end",
"padding": 36,
"text": "Reach"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Engagement"
}
}
},
"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": "Bubble · Packed bubble chart",
"trigger": "mark"
}
},
"locale": "en",
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Packed bubble chart uses runnable data and options to demonstrate bounded radius; frame filtering.",
"text": "Bubble · Packed bubble chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Engagement score",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Satisfaction score",
"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.
2 modes · 2 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
bubble | Bubble chart | bubble() | default | bubble | canvas |
packed-bubble | Packed bubble chart | packedBubble() | packed-bubble | packed-bubble | canvas |
| Identifier | Canonical mode ID |
|---|---|
bubble | bubble |
packedbubble | packed-bubble |
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.