ARIA · table fallbackAccessibility
Canvas ARIA metadata is paired with a text summary and table fallback.
Graflume · Alpha
Compare raw samples through univariate or bivariate density, summary statistics, and theoretical curves. 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 raw samples through univariate or bivariate density, summary statistics, and theoretical curves.
distribution()graflumedistributionChart-specific features
These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Distribution chart uses runnable data and options to demonstrate weighted count/probability/density and cumulative histograms; notched and weighted box summaries.
StatusLoading
distributionweighted count/probability/density and cumulative histogramsnotched and weighted box summariesLoading
Row data and zero-copy TypedArray columns share one data contract.
valuequantitative | seriesordinal |
|---|---|
| 44.8 | Before launch |
| 48.609 | Before launch |
| 51.351 | Before launch |
| 52.38 | Before launch |
| 51.584 | Before launch |
| 49.421 | Before launch |
| 46.777 | Before launch |
| 38.377 | Before launch |
| 37.656 | Before launch |
| 38.692 | Before launch |
| 41.286 | Before launch |
| 44.733 | Before launch |
| 48.059 | Before launch |
| 50.344 | Before launch |
| 44.729 | Before launch |
| 43.798 | Before launch |
| 41.794 | Before launch |
| 39.634 | Before launch |
| 38.32 | Before launch |
| 38.603 | Before launch |
| 40.742 | Before launch |
| 38.114 | Before launch |
| 42.518 | Before launch |
| 46.633 | Before launch |
| 49.548 | Before launch |
| 50.754 | Before launch |
| 50.304 | Before launch |
| 48.795 | Before launch |
| 40.859 | Before launch |
| 40.062 | Before launch |
| 40.777 | Before launch |
| 43.161 | Before launch |
| 46.801 | Before launch |
| 50.846 | Before launch |
| 54.285 | Before launch |
| 49.975 | Before launch |
| 55.8 | After launch |
| 59.609 | After launch |
| 62.351 | After launch |
| 63.38 | After launch |
| 62.584 | After launch |
| 60.421 | After launch |
| 57.777 | After launch |
| 49.377 | After launch |
| 48.656 | After launch |
| 49.692 | After launch |
| 52.286 | After launch |
| 55.733 | After launch |
| 59.059 | After launch |
| 61.344 | After launch |
| 55.729 | After launch |
| 54.798 | After launch |
| 52.794 | After launch |
| 50.634 | After launch |
| 49.32 | After launch |
| 49.603 | After launch |
| 51.742 | After launch |
| 49.114 | After launch |
| 53.518 | After launch |
| 57.633 | After launch |
| 60.548 | After launch |
| 61.754 | After launch |
| 61.304 | After launch |
| 59.795 | After launch |
| 51.859 | After launch |
| 51.062 | After launch |
| 51.777 | After launch |
| 54.161 | After launch |
| 57.801 | After launch |
| 61.846 | After launch |
| 65.285 | After launch |
| 60.975 | After launch |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"ticks": {
"spacing": 8,
"values": [
18,
24,
30,
36,
39
]
}
},
"y": {
"format": {
"type": "integer"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "binStart",
"format": "number",
"label": "Bin start"
},
{
"field": "binEnd",
"format": "number",
"label": "Bin end"
},
{
"field": "count",
"format": "integer",
"label": "Count"
},
{
"field": "proportion",
"format": "percent",
"fractionDigits": 1,
"label": "Proportion"
}
],
"title": "Distribution",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "histogram"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Distribution chart uses runnable data and options to demonstrate weighted count/probability/density and cumulative histograms; notched and weighted box summaries.",
"text": "Distribution"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.distribution('#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": "Distribution example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"ticks": {
"spacing": 8,
"values": [
18,
24,
30,
36,
39
]
}
},
"y": {
"format": {
"type": "integer"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "binStart",
"format": "number",
"label": "Bin start"
},
{
"field": "binEnd",
"format": "number",
"label": "Bin end"
},
{
"field": "count",
"format": "integer",
"label": "Count"
},
{
"field": "proportion",
"format": "percent",
"fractionDigits": 1,
"label": "Proportion"
}
],
"title": "Distribution",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "histogram"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Distribution chart uses runnable data and options to demonstrate weighted count/probability/density and cumulative histograms; notched and weighted box summaries.",
"text": "Distribution"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Histogram uses runnable data and options to demonstrate raw weighted Gaussian KDE with robust bandwidth; rug and strip.
StatusLoading
histogramraw weighted Gaussian KDE with robust bandwidthrug and stripLoading
Row data and zero-copy TypedArray columns share one data contract.
valuequantitative |
|---|
| 44.8 |
| 48.609 |
| 51.351 |
| 52.38 |
| 51.584 |
| 49.421 |
| 46.777 |
| 38.377 |
| 37.656 |
| 38.692 |
| 41.286 |
| 44.733 |
| 48.059 |
| 50.344 |
| 44.729 |
| 43.798 |
| 41.794 |
| 39.634 |
| 38.32 |
| 38.603 |
| 40.742 |
| 38.114 |
| 42.518 |
| 46.633 |
| 49.548 |
| 50.754 |
| 50.304 |
| 48.795 |
| 40.859 |
| 40.062 |
| 40.777 |
| 43.161 |
| 46.801 |
| 50.846 |
| 54.285 |
| 49.975 |
| 55.8 |
| 59.609 |
| 62.351 |
| 63.38 |
| 62.584 |
| 60.421 |
| 57.777 |
| 49.377 |
| 48.656 |
| 49.692 |
| 52.286 |
| 55.733 |
| 59.059 |
| 61.344 |
| 55.729 |
| 54.798 |
| 52.794 |
| 50.634 |
| 49.32 |
| 49.603 |
| 51.742 |
| 49.114 |
| 53.518 |
| 57.633 |
| 60.548 |
| 61.754 |
| 61.304 |
| 59.795 |
| 51.859 |
| 51.062 |
| 51.777 |
| 54.161 |
| 57.801 |
| 61.846 |
| 65.285 |
| 60.975 |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution · Histogram example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"ticks": {
"spacing": 8,
"values": [
18,
24,
30,
36,
39
]
}
},
"y": {
"format": {
"type": "integer"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "binStart",
"format": "number",
"label": "Bin start"
},
{
"field": "binEnd",
"format": "number",
"label": "Bin end"
},
{
"field": "count",
"format": "integer",
"label": "Count"
},
{
"field": "proportion",
"format": "percent",
"fractionDigits": 1,
"label": "Proportion"
}
],
"title": "Distribution · Histogram",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"bins": 12
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Histogram uses runnable data and options to demonstrate raw weighted Gaussian KDE with robust bandwidth; rug and strip.",
"text": "Distribution · Histogram"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.histogram('#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": "Distribution · Histogram example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"ticks": {
"spacing": 8,
"values": [
18,
24,
30,
36,
39
]
}
},
"y": {
"format": {
"type": "integer"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "binStart",
"format": "number",
"label": "Bin start"
},
{
"field": "binEnd",
"format": "number",
"label": "Bin end"
},
{
"field": "count",
"format": "integer",
"label": "Count"
},
{
"field": "proportion",
"format": "percent",
"fractionDigits": 1,
"label": "Proportion"
}
],
"title": "Distribution · Histogram",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"bins": 12
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Histogram uses runnable data and options to demonstrate raw weighted Gaussian KDE with robust bandwidth; rug and strip.",
"text": "Distribution · Histogram"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Empirical cumulative distribution uses runnable data and options to demonstrate weighted ECDF and CCDF.
StatusLoading
ecdfweighted ECDF and CCDFLoading
Row data and zero-copy TypedArray columns share one data contract.
valuequantitative | seriesordinal |
|---|---|
| 44.8 | Before launch |
| 48.609 | Before launch |
| 51.351 | Before launch |
| 52.38 | Before launch |
| 51.584 | Before launch |
| 49.421 | Before launch |
| 46.777 | Before launch |
| 38.377 | Before launch |
| 37.656 | Before launch |
| 38.692 | Before launch |
| 41.286 | Before launch |
| 44.733 | Before launch |
| 48.059 | Before launch |
| 50.344 | Before launch |
| 44.729 | Before launch |
| 43.798 | Before launch |
| 41.794 | Before launch |
| 39.634 | Before launch |
| 38.32 | Before launch |
| 38.603 | Before launch |
| 40.742 | Before launch |
| 38.114 | Before launch |
| 42.518 | Before launch |
| 46.633 | Before launch |
| 49.548 | Before launch |
| 50.754 | Before launch |
| 50.304 | Before launch |
| 48.795 | Before launch |
| 40.859 | Before launch |
| 40.062 | Before launch |
| 40.777 | Before launch |
| 43.161 | Before launch |
| 46.801 | Before launch |
| 50.846 | Before launch |
| 54.285 | Before launch |
| 49.975 | Before launch |
| 55.8 | After launch |
| 59.609 | After launch |
| 62.351 | After launch |
| 63.38 | After launch |
| 62.584 | After launch |
| 60.421 | After launch |
| 57.777 | After launch |
| 49.377 | After launch |
| 48.656 | After launch |
| 49.692 | After launch |
| 52.286 | After launch |
| 55.733 | After launch |
| 59.059 | After launch |
| 61.344 | After launch |
| 55.729 | After launch |
| 54.798 | After launch |
| 52.794 | After launch |
| 50.634 | After launch |
| 49.32 | After launch |
| 49.603 | After launch |
| 51.742 | After launch |
| 49.114 | After launch |
| 53.518 | After launch |
| 57.633 | After launch |
| 60.548 | After launch |
| 61.754 | After launch |
| 61.304 | After launch |
| 59.795 | After launch |
| 51.859 | After launch |
| 51.062 | After launch |
| 51.777 | After launch |
| 54.161 | After launch |
| 57.801 | After launch |
| 61.846 | After launch |
| 65.285 | After launch |
| 60.975 | After launch |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution · Empirical cumulative distribution example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"ticks": {
"count": 6,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "probability",
"format": "percent",
"fractionDigits": 1,
"label": "Probability"
},
{
"field": "weight",
"format": "number",
"label": "Weight"
},
{
"field": "count",
"format": "integer",
"label": "Count"
}
],
"title": "Distribution · Empirical cumulative distribution",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "ecdf"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Empirical cumulative distribution uses runnable data and options to demonstrate weighted ECDF and CCDF.",
"text": "Distribution · Empirical cumulative distribution"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.ecdf('#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": "Distribution · Empirical cumulative distribution example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"ticks": {
"count": 6,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "probability",
"format": "percent",
"fractionDigits": 1,
"label": "Probability"
},
{
"field": "weight",
"format": "number",
"label": "Weight"
},
{
"field": "count",
"format": "integer",
"label": "Count"
}
],
"title": "Distribution · Empirical cumulative distribution",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "ecdf"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Empirical cumulative distribution uses runnable data and options to demonstrate weighted ECDF and CCDF.",
"text": "Distribution · Empirical cumulative distribution"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Complementary empirical distribution uses runnable data and options to demonstrate raw Type-7 box quartiles, 1.5-IQR whiskers and outliers.
StatusLoading
ccdfraw Type-7 box quartiles, 1.5-IQR whiskers and outliersLoading
Row data and zero-copy TypedArray columns share one data contract.
valuequantitative | seriesordinal |
|---|---|
| 44.8 | Before launch |
| 48.609 | Before launch |
| 51.351 | Before launch |
| 52.38 | Before launch |
| 51.584 | Before launch |
| 49.421 | Before launch |
| 46.777 | Before launch |
| 38.377 | Before launch |
| 37.656 | Before launch |
| 38.692 | Before launch |
| 41.286 | Before launch |
| 44.733 | Before launch |
| 48.059 | Before launch |
| 50.344 | Before launch |
| 44.729 | Before launch |
| 43.798 | Before launch |
| 41.794 | Before launch |
| 39.634 | Before launch |
| 38.32 | Before launch |
| 38.603 | Before launch |
| 40.742 | Before launch |
| 38.114 | Before launch |
| 42.518 | Before launch |
| 46.633 | Before launch |
| 49.548 | Before launch |
| 50.754 | Before launch |
| 50.304 | Before launch |
| 48.795 | Before launch |
| 40.859 | Before launch |
| 40.062 | Before launch |
| 40.777 | Before launch |
| 43.161 | Before launch |
| 46.801 | Before launch |
| 50.846 | Before launch |
| 54.285 | Before launch |
| 49.975 | Before launch |
| 55.8 | After launch |
| 59.609 | After launch |
| 62.351 | After launch |
| 63.38 | After launch |
| 62.584 | After launch |
| 60.421 | After launch |
| 57.777 | After launch |
| 49.377 | After launch |
| 48.656 | After launch |
| 49.692 | After launch |
| 52.286 | After launch |
| 55.733 | After launch |
| 59.059 | After launch |
| 61.344 | After launch |
| 55.729 | After launch |
| 54.798 | After launch |
| 52.794 | After launch |
| 50.634 | After launch |
| 49.32 | After launch |
| 49.603 | After launch |
| 51.742 | After launch |
| 49.114 | After launch |
| 53.518 | After launch |
| 57.633 | After launch |
| 60.548 | After launch |
| 61.754 | After launch |
| 61.304 | After launch |
| 59.795 | After launch |
| 51.859 | After launch |
| 51.062 | After launch |
| 51.777 | After launch |
| 54.161 | After launch |
| 57.801 | After launch |
| 61.846 | After launch |
| 65.285 | After launch |
| 60.975 | After launch |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution · Complementary empirical distribution example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"ticks": {
"count": 6,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "probability",
"format": "percent",
"fractionDigits": 1,
"label": "Probability"
},
{
"field": "weight",
"format": "number",
"label": "Weight"
},
{
"field": "count",
"format": "integer",
"label": "Count"
}
],
"title": "Distribution · Complementary empirical distribution",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "ccdf"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Complementary empirical distribution uses runnable data and options to demonstrate raw Type-7 box quartiles, 1.5-IQR whiskers and outliers.",
"text": "Distribution · Complementary empirical distribution"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.ccdf('#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": "Distribution · Complementary empirical distribution example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "percent"
},
"ticks": {
"count": 6,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "probability",
"format": "percent",
"fractionDigits": 1,
"label": "Probability"
},
{
"field": "weight",
"format": "number",
"label": "Weight"
},
{
"field": "count",
"format": "integer",
"label": "Count"
}
],
"title": "Distribution · Complementary empirical distribution",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "ccdf"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Complementary empirical distribution uses runnable data and options to demonstrate raw Type-7 box quartiles, 1.5-IQR whiskers and outliers.",
"text": "Distribution · Complementary empirical distribution"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Kernel density estimate uses runnable data and options to demonstrate raw KDE violin.
StatusLoading
kderaw KDE violinLoading
Row data and zero-copy TypedArray columns share one data contract.
valuequantitative | seriesordinal |
|---|---|
| 44.8 | Before launch |
| 48.609 | Before launch |
| 51.351 | Before launch |
| 52.38 | Before launch |
| 51.584 | Before launch |
| 49.421 | Before launch |
| 46.777 | Before launch |
| 38.377 | Before launch |
| 37.656 | Before launch |
| 38.692 | Before launch |
| 41.286 | Before launch |
| 44.733 | Before launch |
| 48.059 | Before launch |
| 50.344 | Before launch |
| 44.729 | Before launch |
| 43.798 | Before launch |
| 41.794 | Before launch |
| 39.634 | Before launch |
| 38.32 | Before launch |
| 38.603 | Before launch |
| 40.742 | Before launch |
| 38.114 | Before launch |
| 42.518 | Before launch |
| 46.633 | Before launch |
| 49.548 | Before launch |
| 50.754 | Before launch |
| 50.304 | Before launch |
| 48.795 | Before launch |
| 40.859 | Before launch |
| 40.062 | Before launch |
| 40.777 | Before launch |
| 43.161 | Before launch |
| 46.801 | Before launch |
| 50.846 | Before launch |
| 54.285 | Before launch |
| 49.975 | Before launch |
| 55.8 | After launch |
| 59.609 | After launch |
| 62.351 | After launch |
| 63.38 | After launch |
| 62.584 | After launch |
| 60.421 | After launch |
| 57.777 | After launch |
| 49.377 | After launch |
| 48.656 | After launch |
| 49.692 | After launch |
| 52.286 | After launch |
| 55.733 | After launch |
| 59.059 | After launch |
| 61.344 | After launch |
| 55.729 | After launch |
| 54.798 | After launch |
| 52.794 | After launch |
| 50.634 | After launch |
| 49.32 | After launch |
| 49.603 | After launch |
| 51.742 | After launch |
| 49.114 | After launch |
| 53.518 | After launch |
| 57.633 | After launch |
| 60.548 | After launch |
| 61.754 | After launch |
| 61.304 | After launch |
| 59.795 | After launch |
| 51.859 | After launch |
| 51.062 | After launch |
| 51.777 | After launch |
| 54.161 | After launch |
| 57.801 | After launch |
| 61.846 | After launch |
| 65.285 | After launch |
| 60.975 | After launch |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution · Kernel density estimate example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"fractionDigits": 3,
"type": "number"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "density",
"format": "number",
"fractionDigits": 3,
"label": "Density"
},
{
"field": "bandwidth",
"format": "number",
"fractionDigits": 3,
"label": "Bandwidth"
},
{
"field": "sampleCount",
"format": "integer",
"label": "Sample count"
}
],
"title": "Distribution · Kernel density estimate",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "kde"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Kernel density estimate uses runnable data and options to demonstrate raw KDE violin.",
"text": "Distribution · Kernel density estimate"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.kde('#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": "Distribution · Kernel density estimate example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"ticks": {
"count": 6,
"spacing": 8
}
},
"y": {
"format": {
"fractionDigits": 3,
"type": "number"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "density",
"format": "number",
"fractionDigits": 3,
"label": "Density"
},
{
"field": "bandwidth",
"format": "number",
"fractionDigits": 3,
"label": "Bandwidth"
},
{
"field": "sampleCount",
"format": "integer",
"label": "Sample count"
}
],
"title": "Distribution · Kernel density estimate",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "kde"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Kernel density estimate uses runnable data and options to demonstrate raw KDE violin.",
"text": "Distribution · Kernel density estimate"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Bivariate histogram uses runnable data and options to demonstrate precomputed box.
StatusLoading
histogram-2dprecomputed boxLoading
Row data and zero-copy TypedArray columns share one data contract.
xquantitative | yquantitative |
|---|---|
| -0.08 | -0.08 |
| 0 | -0.08 |
| 0.92 | -0.08 |
| 1 | -0.08 |
| 1.92 | -0.08 |
| 2 | -0.08 |
| 2.08 | -0.08 |
| 2.92 | -0.08 |
| 3 | -0.08 |
| 3.08 | -0.08 |
| 3.92 | -0.08 |
| 4 | -0.08 |
| 4.08 | -0.08 |
| 4.92 | -0.08 |
| 5 | -0.08 |
| 5.92 | -0.08 |
| 6 | -0.08 |
| 6.92 | -0.08 |
| 7.92 | -0.08 |
| 8.92 | -0.08 |
| 9.92 | -0.08 |
| 10.92 | -0.08 |
| -0.08 | 0.92 |
| 0 | 0.92 |
| 0.92 | 0.92 |
| 1 | 0.92 |
| 1.08 | 0.92 |
| 1.92 | 0.92 |
| 2 | 0.92 |
| 2.08 | 0.92 |
| 1.92 | 1 |
| 2.92 | 0.92 |
| 3 | 0.92 |
| 3.08 | 0.92 |
| 2.92 | 1 |
| 3 | 1 |
| 3.92 | 0.92 |
| 4 | 0.92 |
| 4.08 | 0.92 |
| 3.92 | 1 |
| 4 | 1 |
| 4.92 | 0.92 |
| 5 | 0.92 |
| 5.08 | 0.92 |
| 4.92 | 1 |
| 5.92 | 0.92 |
| 6 | 0.92 |
| 6.08 | 0.92 |
| 6.92 | 0.92 |
| 7 | 0.92 |
| 7.92 | 0.92 |
| 8.92 | 0.92 |
| 9.92 | 0.92 |
| 10.92 | 0.92 |
| -0.08 | 1.92 |
| 0 | 1.92 |
| 0.92 | 1.92 |
| 1 | 1.92 |
| 1.08 | 1.92 |
| 0.92 | 2 |
| 1.92 | 1.92 |
| 2 | 1.92 |
| 2.08 | 1.92 |
| 1.92 | 2 |
| 2 | 2 |
| 2.08 | 2 |
| 2.92 | 1.92 |
| 3 | 1.92 |
| 3.08 | 1.92 |
| 2.92 | 2 |
| 3 | 2 |
| 3.08 | 2 |
| 2.92 | 2.08 |
| 3.92 | 1.92 |
| 4 | 1.92 |
| 4.08 | 1.92 |
| 3.92 | 2 |
| 4 | 2 |
| 4.08 | 2 |
| 3.92 | 2.08 |
| 4.92 | 1.92 |
| 5 | 1.92 |
| 5.08 | 1.92 |
| 4.92 | 2 |
| 5 | 2 |
| 5.08 | 2 |
| 5.92 | 1.92 |
| 6 | 1.92 |
| 6.08 | 1.92 |
| 5.92 | 2 |
| 6.92 | 1.92 |
| 7 | 1.92 |
| 7.92 | 1.92 |
| 8.92 | 1.92 |
| 9.92 | 1.92 |
| 10.92 | 1.92 |
| -0.08 | 2.92 |
| 0 | 2.92 |
| 0.92 | 2.92 |
| 1 | 2.92 |
| 1.08 | 2.92 |
| 1.92 | 2.92 |
| 2 | 2.92 |
| 2.08 | 2.92 |
| 1.92 | 3 |
| 2 | 3 |
| 2.92 | 2.92 |
| 3 | 2.92 |
| 3.08 | 2.92 |
| 2.92 | 3 |
| 3 | 3 |
| 3.08 | 3 |
| 2.92 | 3.08 |
| 3.92 | 2.92 |
| 4 | 2.92 |
| 4.08 | 2.92 |
| 3.92 | 3 |
| 4 | 3 |
| 4.08 | 3 |
| 3.92 | 3.08 |
| 4.92 | 2.92 |
| 5 | 2.92 |
| 5.08 | 2.92 |
| 4.92 | 3 |
| 5 | 3 |
| 5.08 | 3 |
| 5.92 | 2.92 |
| 6 | 2.92 |
Browser API
const data = [
{
"x": -0.08,
"y": -0.08
},
{
"x": 0,
"y": -0.08
},
{
"x": 0.92,
"y": -0.08
},
{
"x": 1,
"y": -0.08
},
{
"x": 1.92,
"y": -0.08
},
{
"x": 2,
"y": -0.08
},
{
"x": 2.08,
"y": -0.08
},
{
"x": 2.92,
"y": -0.08
},
{
"x": 3,
"y": -0.08
},
{
"x": 3.08,
"y": -0.08
},
{
"x": 3.92,
"y": -0.08
},
{
"x": 4,
"y": -0.08
},
{
"x": 4.08,
"y": -0.08
},
{
"x": 4.92,
"y": -0.08
},
{
"x": 5,
"y": -0.08
},
{
"x": 5.92,
"y": -0.08
},
{
"x": 6,
"y": -0.08
},
{
"x": 6.92,
"y": -0.08
},
{
"x": 7.92,
"y": -0.08
},
{
"x": 8.92,
"y": -0.08
},
{
"x": 9.92,
"y": -0.08
},
{
"x": 10.92,
"y": -0.08
},
{
"x": -0.08,
"y": 0.92
},
{
"x": 0,
"y": 0.92
},
{
"x": 0.92,
"y": 0.92
},
{
"x": 1,
"y": 0.92
},
{
"x": 1.08,
"y": 0.92
},
{
"x": 1.92,
"y": 0.92
},
{
"x": 2,
"y": 0.92
},
{
"x": 2.08,
"y": 0.92
},
{
"x": 1.92,
"y": 1
},
{
"x": 2.92,
"y": 0.92
},
{
"x": 3,
"y": 0.92
},
{
"x": 3.08,
"y": 0.92
},
{
"x": 2.92,
"y": 1
},
{
"x": 3,
"y": 1
},
{
"x": 3.92,
"y": 0.92
},
{
"x": 4,
"y": 0.92
},
{
"x": 4.08,
"y": 0.92
},
{
"x": 3.92,
"y": 1
},
{
"x": 4,
"y": 1
},
{
"x": 4.92,
"y": 0.92
},
{
"x": 5,
"y": 0.92
},
{
"x": 5.08,
"y": 0.92
},
{
"x": 4.92,
"y": 1
},
{
"x": 5.92,
"y": 0.92
},
{
"x": 6,
"y": 0.92
},
{
"x": 6.08,
"y": 0.92
},
{
"x": 6.92,
"y": 0.92
},
{
"x": 7,
"y": 0.92
},
{
"x": 7.92,
"y": 0.92
},
{
"x": 8.92,
"y": 0.92
},
{
"x": 9.92,
"y": 0.92
},
{
"x": 10.92,
"y": 0.92
},
{
"x": -0.08,
"y": 1.92
},
{
"x": 0,
"y": 1.92
},
{
"x": 0.92,
"y": 1.92
},
{
"x": 1,
"y": 1.92
},
{
"x": 1.08,
"y": 1.92
},
{
"x": 0.92,
"y": 2
},
{
"x": 1.92,
"y": 1.92
},
{
"x": 2,
"y": 1.92
},
{
"x": 2.08,
"y": 1.92
},
{
"x": 1.92,
"y": 2
},
{
"x": 2,
"y": 2
},
{
"x": 2.08,
"y": 2
},
{
"x": 2.92,
"y": 1.92
},
{
"x": 3,
"y": 1.92
},
{
"x": 3.08,
"y": 1.92
},
{
"x": 2.92,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 3.08,
"y": 2
},
{
"x": 2.92,
"y": 2.08
},
{
"x": 3.92,
"y": 1.92
},
{
"x": 4,
"y": 1.92
},
{
"x": 4.08,
"y": 1.92
},
{
"x": 3.92,
"y": 2
},
{
"x": 4,
"y": 2
},
{
"x": 4.08,
"y": 2
},
{
"x": 3.92,
"y": 2.08
},
{
"x": 4.92,
"y": 1.92
},
{
"x": 5,
"y": 1.92
},
{
"x": 5.08,
"y": 1.92
},
{
"x": 4.92,
"y": 2
},
{
"x": 5,
"y": 2
},
{
"x": 5.08,
"y": 2
},
{
"x": 5.92,
"y": 1.92
},
{
"x": 6,
"y": 1.92
},
{
"x": 6.08,
"y": 1.92
},
{
"x": 5.92,
"y": 2
},
{
"x": 6.92,
"y": 1.92
},
{
"x": 7,
"y": 1.92
},
{
"x": 7.92,
"y": 1.92
},
{
"x": 8.92,
"y": 1.92
},
{
"x": 9.92,
"y": 1.92
},
{
"x": 10.92,
"y": 1.92
},
{
"x": -0.08,
"y": 2.92
},
{
"x": 0,
"y": 2.92
},
{
"x": 0.92,
"y": 2.92
},
{
"x": 1,
"y": 2.92
},
{
"x": 1.08,
"y": 2.92
},
{
"x": 1.92,
"y": 2.92
},
{
"x": 2,
"y": 2.92
},
{
"x": 2.08,
"y": 2.92
},
{
"x": 1.92,
"y": 3
},
{
"x": 2,
"y": 3
},
{
"x": 2.92,
"y": 2.92
},
{
"x": 3,
"y": 2.92
},
{
"x": 3.08,
"y": 2.92
},
{
"x": 2.92,
"y": 3
},
{
"x": 3,
"y": 3
},
{
"x": 3.08,
"y": 3
},
{
"x": 2.92,
"y": 3.08
},
{
"x": 3.92,
"y": 2.92
},
{
"x": 4,
"y": 2.92
},
{
"x": 4.08,
"y": 2.92
},
{
"x": 3.92,
"y": 3
},
{
"x": 4,
"y": 3
},
{
"x": 4.08,
"y": 3
},
{
"x": 3.92,
"y": 3.08
},
{
"x": 4.92,
"y": 2.92
},
{
"x": 5,
"y": 2.92
},
{
"x": 5.08,
"y": 2.92
},
{
"x": 4.92,
"y": 3
},
{
"x": 5,
"y": 3
},
{
"x": 5.08,
"y": 3
},
{
"x": 5.92,
"y": 2.92
},
{
"x": 6,
"y": 2.92
},
{
"x": 6.08,
"y": 2.92
},
{
"x": 5.92,
"y": 3
},
{
"x": 6,
"y": 3
},
{
"x": 6.92,
"y": 2.92
},
{
"x": 7,
"y": 2.92
},
{
"x": 7.08,
"y": 2.92
},
{
"x": 7.92,
"y": 2.92
},
{
"x": 8,
"y": 2.92
},
{
"x": 8.08,
"y": 2.92
},
{
"x": 8.92,
"y": 2.92
},
{
"x": 9,
"y": 2.92
},
{
"x": 9.92,
"y": 2.92
},
{
"x": 10,
"y": 2.92
},
{
"x": 10.92,
"y": 2.92
},
{
"x": -0.08,
"y": 3.92
},
{
"x": 0.92,
"y": 3.92
},
{
"x": 1,
"y": 3.92
},
{
"x": 1.08,
"y": 3.92
},
{
"x": 1.92,
"y": 3.92
},
{
"x": 2,
"y": 3.92
},
{
"x": 2.08,
"y": 3.92
},
{
"x": 1.92,
"y": 4
},
{
"x": 2.92,
"y": 3.92
},
{
"x": 3,
"y": 3.92
},
{
"x": 3.08,
"y": 3.92
},
{
"x": 2.92,
"y": 4
},
{
"x": 3,
"y": 4
},
{
"x": 3.92,
"y": 3.92
},
{
"x": 4,
"y": 3.92
},
{
"x": 4.08,
"y": 3.92
},
{
"x": 3.92,
"y": 4
},
{
"x": 4,
"y": 4
},
{
"x": 4.08,
"y": 4
},
{
"x": 4.92,
"y": 3.92
},
{
"x": 5,
"y": 3.92
},
{
"x": 5.08,
"y": 3.92
},
{
"x": 4.92,
"y": 4
},
{
"x": 5,
"y": 4
},
{
"x": 5.92,
"y": 3.92
},
{
"x": 6,
"y": 3.92
},
{
"x": 6.08,
"y": 3.92
},
{
"x": 5.92,
"y": 4
},
{
"x": 6.92,
"y": 3.92
},
{
"x": 7,
"y": 3.92
},
{
"x": 7.08,
"y": 3.92
},
{
"x": 6.92,
"y": 4
},
{
"x": 7.92,
"y": 3.92
},
{
"x": 8,
"y": 3.92
},
{
"x": 8.08,
"y": 3.92
},
{
"x": 7.92,
"y": 4
},
{
"x": 8,
"y": 4
},
{
"x": 8.92,
"y": 3.92
},
{
"x": 9,
"y": 3.92
},
{
"x": 9.08,
"y": 3.92
},
{
"x": 8.92,
"y": 4
},
{
"x": 9.92,
"y": 3.92
},
{
"x": 10,
"y": 3.92
},
{
"x": 10.08,
"y": 3.92
},
{
"x": 10.92,
"y": 3.92
},
{
"x": 11,
"y": 3.92
},
{
"x": -0.08,
"y": 4.92
},
{
"x": 0.92,
"y": 4.92
},
{
"x": 1,
"y": 4.92
},
{
"x": 1.92,
"y": 4.92
},
{
"x": 2,
"y": 4.92
},
{
"x": 2.08,
"y": 4.92
},
{
"x": 2.92,
"y": 4.92
},
{
"x": 3,
"y": 4.92
},
{
"x": 3.08,
"y": 4.92
},
{
"x": 2.92,
"y": 5
},
{
"x": 3.92,
"y": 4.92
},
{
"x": 4,
"y": 4.92
},
{
"x": 4.08,
"y": 4.92
},
{
"x": 3.92,
"y": 5
},
{
"x": 4.92,
"y": 4.92
},
{
"x": 5,
"y": 4.92
},
{
"x": 5.08,
"y": 4.92
},
{
"x": 5.92,
"y": 4.92
},
{
"x": 6,
"y": 4.92
},
{
"x": 6.08,
"y": 4.92
},
{
"x": 6.92,
"y": 4.92
},
{
"x": 7,
"y": 4.92
},
{
"x": 7.08,
"y": 4.92
},
{
"x": 6.92,
"y": 5
},
{
"x": 7.92,
"y": 4.92
},
{
"x": 8,
"y": 4.92
},
{
"x": 8.08,
"y": 4.92
},
{
"x": 7.92,
"y": 5
},
{
"x": 8,
"y": 5
},
{
"x": 8.92,
"y": 4.92
},
{
"x": 9,
"y": 4.92
},
{
"x": 9.08,
"y": 4.92
},
{
"x": 8.92,
"y": 5
},
{
"x": 9,
"y": 5
},
{
"x": 9.08,
"y": 5
},
{
"x": 9.92,
"y": 4.92
},
{
"x": 10,
"y": 4.92
},
{
"x": 10.08,
"y": 4.92
},
{
"x": 9.92,
"y": 5
},
{
"x": 10.92,
"y": 4.92
},
{
"x": 11,
"y": 4.92
},
{
"x": 11.08,
"y": 4.92
},
{
"x": -0.08,
"y": 5.92
},
{
"x": 0.92,
"y": 5.92
},
{
"x": 1.92,
"y": 5.92
},
{
"x": 2,
"y": 5.92
},
{
"x": 2.92,
"y": 5.92
},
{
"x": 3,
"y": 5.92
},
{
"x": 3.92,
"y": 5.92
},
{
"x": 4,
"y": 5.92
},
{
"x": 4.92,
"y": 5.92
},
{
"x": 5,
"y": 5.92
},
{
"x": 5.92,
"y": 5.92
},
{
"x": 6,
"y": 5.92
},
{
"x": 6.92,
"y": 5.92
},
{
"x": 7,
"y": 5.92
},
{
"x": 7.08,
"y": 5.92
},
{
"x": 7.92,
"y": 5.92
},
{
"x": 8,
"y": 5.92
},
{
"x": 8.08,
"y": 5.92
},
{
"x": 7.92,
"y": 6
},
{
"x": 8.92,
"y": 5.92
},
{
"x": 9,
"y": 5.92
},
{
"x": 9.08,
"y": 5.92
},
{
"x": 8.92,
"y": 6
},
{
"x": 9,
"y": 6
},
{
"x": 9.92,
"y": 5.92
},
{
"x": 10,
"y": 5.92
},
{
"x": 10.08,
"y": 5.92
},
{
"x": 9.92,
"y": 6
},
{
"x": 10.92,
"y": 5.92
},
{
"x": 11,
"y": 5.92
},
{
"x": 11.08,
"y": 5.92
},
{
"x": -0.08,
"y": 6.92
},
{
"x": 0.92,
"y": 6.92
},
{
"x": 1.92,
"y": 6.92
},
{
"x": 2.92,
"y": 6.92
},
{
"x": 3.92,
"y": 6.92
},
{
"x": 4.92,
"y": 6.92
},
{
"x": 5.92,
"y": 6.92
},
{
"x": 6.92,
"y": 6.92
},
{
"x": 7,
"y": 6.92
},
{
"x": 7.92,
"y": 6.92
},
{
"x": 8,
"y": 6.92
},
{
"x": 8.08,
"y": 6.92
},
{
"x": 8.92,
"y": 6.92
},
{
"x": 9,
"y": 6.92
},
{
"x": 9.08,
"y": 6.92
},
{
"x": 9.92,
"y": 6.92
},
{
"x": 10,
"y": 6.92
},
{
"x": 10.92,
"y": 6.92
},
{
"x": 11,
"y": 6.92
}
];
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": "Distribution · Bivariate histogram example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
},
"y": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
}
},
"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": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
}
],
"title": "Distribution · Bivariate histogram",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"binsX": 6,
"binsY": 5,
"levels": 4,
"mode": "histogram-2d"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bivariate histogram uses runnable data and options to demonstrate precomputed box.",
"text": "Distribution · Bivariate histogram"
},
"width": "container",
"x": {
"field": "x",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.histogram2d('#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": "Distribution · Bivariate histogram example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
},
"y": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
}
},
"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": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
}
],
"title": "Distribution · Bivariate histogram",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"binsX": 6,
"binsY": 5,
"levels": 4,
"mode": "histogram-2d"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bivariate histogram uses runnable data and options to demonstrate precomputed box.",
"text": "Distribution · Bivariate histogram"
},
"width": "container",
"x": {
"field": "x",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Frequency",
"type": "quantitative"
}
}Bivariate density contours uses runnable data and options to demonstrate normal density curve.
StatusLoading
histogram-2d-contournormal density curveLoading
Row data and zero-copy TypedArray columns share one data contract.
xquantitative | yquantitative |
|---|---|
| -0.08 | -0.08 |
| 0 | -0.08 |
| 0.92 | -0.08 |
| 1 | -0.08 |
| 1.92 | -0.08 |
| 2 | -0.08 |
| 2.08 | -0.08 |
| 2.92 | -0.08 |
| 3 | -0.08 |
| 3.08 | -0.08 |
| 3.92 | -0.08 |
| 4 | -0.08 |
| 4.08 | -0.08 |
| 4.92 | -0.08 |
| 5 | -0.08 |
| 5.92 | -0.08 |
| 6 | -0.08 |
| 6.92 | -0.08 |
| 7.92 | -0.08 |
| 8.92 | -0.08 |
| 9.92 | -0.08 |
| 10.92 | -0.08 |
| -0.08 | 0.92 |
| 0 | 0.92 |
| 0.92 | 0.92 |
| 1 | 0.92 |
| 1.08 | 0.92 |
| 1.92 | 0.92 |
| 2 | 0.92 |
| 2.08 | 0.92 |
| 1.92 | 1 |
| 2.92 | 0.92 |
| 3 | 0.92 |
| 3.08 | 0.92 |
| 2.92 | 1 |
| 3 | 1 |
| 3.92 | 0.92 |
| 4 | 0.92 |
| 4.08 | 0.92 |
| 3.92 | 1 |
| 4 | 1 |
| 4.92 | 0.92 |
| 5 | 0.92 |
| 5.08 | 0.92 |
| 4.92 | 1 |
| 5.92 | 0.92 |
| 6 | 0.92 |
| 6.08 | 0.92 |
| 6.92 | 0.92 |
| 7 | 0.92 |
| 7.92 | 0.92 |
| 8.92 | 0.92 |
| 9.92 | 0.92 |
| 10.92 | 0.92 |
| -0.08 | 1.92 |
| 0 | 1.92 |
| 0.92 | 1.92 |
| 1 | 1.92 |
| 1.08 | 1.92 |
| 0.92 | 2 |
| 1.92 | 1.92 |
| 2 | 1.92 |
| 2.08 | 1.92 |
| 1.92 | 2 |
| 2 | 2 |
| 2.08 | 2 |
| 2.92 | 1.92 |
| 3 | 1.92 |
| 3.08 | 1.92 |
| 2.92 | 2 |
| 3 | 2 |
| 3.08 | 2 |
| 2.92 | 2.08 |
| 3.92 | 1.92 |
| 4 | 1.92 |
| 4.08 | 1.92 |
| 3.92 | 2 |
| 4 | 2 |
| 4.08 | 2 |
| 3.92 | 2.08 |
| 4.92 | 1.92 |
| 5 | 1.92 |
| 5.08 | 1.92 |
| 4.92 | 2 |
| 5 | 2 |
| 5.08 | 2 |
| 5.92 | 1.92 |
| 6 | 1.92 |
| 6.08 | 1.92 |
| 5.92 | 2 |
| 6.92 | 1.92 |
| 7 | 1.92 |
| 7.92 | 1.92 |
| 8.92 | 1.92 |
| 9.92 | 1.92 |
| 10.92 | 1.92 |
| -0.08 | 2.92 |
| 0 | 2.92 |
| 0.92 | 2.92 |
| 1 | 2.92 |
| 1.08 | 2.92 |
| 1.92 | 2.92 |
| 2 | 2.92 |
| 2.08 | 2.92 |
| 1.92 | 3 |
| 2 | 3 |
| 2.92 | 2.92 |
| 3 | 2.92 |
| 3.08 | 2.92 |
| 2.92 | 3 |
| 3 | 3 |
| 3.08 | 3 |
| 2.92 | 3.08 |
| 3.92 | 2.92 |
| 4 | 2.92 |
| 4.08 | 2.92 |
| 3.92 | 3 |
| 4 | 3 |
| 4.08 | 3 |
| 3.92 | 3.08 |
| 4.92 | 2.92 |
| 5 | 2.92 |
| 5.08 | 2.92 |
| 4.92 | 3 |
| 5 | 3 |
| 5.08 | 3 |
| 5.92 | 2.92 |
| 6 | 2.92 |
Browser API
const data = [
{
"x": -0.08,
"y": -0.08
},
{
"x": 0,
"y": -0.08
},
{
"x": 0.92,
"y": -0.08
},
{
"x": 1,
"y": -0.08
},
{
"x": 1.92,
"y": -0.08
},
{
"x": 2,
"y": -0.08
},
{
"x": 2.08,
"y": -0.08
},
{
"x": 2.92,
"y": -0.08
},
{
"x": 3,
"y": -0.08
},
{
"x": 3.08,
"y": -0.08
},
{
"x": 3.92,
"y": -0.08
},
{
"x": 4,
"y": -0.08
},
{
"x": 4.08,
"y": -0.08
},
{
"x": 4.92,
"y": -0.08
},
{
"x": 5,
"y": -0.08
},
{
"x": 5.92,
"y": -0.08
},
{
"x": 6,
"y": -0.08
},
{
"x": 6.92,
"y": -0.08
},
{
"x": 7.92,
"y": -0.08
},
{
"x": 8.92,
"y": -0.08
},
{
"x": 9.92,
"y": -0.08
},
{
"x": 10.92,
"y": -0.08
},
{
"x": -0.08,
"y": 0.92
},
{
"x": 0,
"y": 0.92
},
{
"x": 0.92,
"y": 0.92
},
{
"x": 1,
"y": 0.92
},
{
"x": 1.08,
"y": 0.92
},
{
"x": 1.92,
"y": 0.92
},
{
"x": 2,
"y": 0.92
},
{
"x": 2.08,
"y": 0.92
},
{
"x": 1.92,
"y": 1
},
{
"x": 2.92,
"y": 0.92
},
{
"x": 3,
"y": 0.92
},
{
"x": 3.08,
"y": 0.92
},
{
"x": 2.92,
"y": 1
},
{
"x": 3,
"y": 1
},
{
"x": 3.92,
"y": 0.92
},
{
"x": 4,
"y": 0.92
},
{
"x": 4.08,
"y": 0.92
},
{
"x": 3.92,
"y": 1
},
{
"x": 4,
"y": 1
},
{
"x": 4.92,
"y": 0.92
},
{
"x": 5,
"y": 0.92
},
{
"x": 5.08,
"y": 0.92
},
{
"x": 4.92,
"y": 1
},
{
"x": 5.92,
"y": 0.92
},
{
"x": 6,
"y": 0.92
},
{
"x": 6.08,
"y": 0.92
},
{
"x": 6.92,
"y": 0.92
},
{
"x": 7,
"y": 0.92
},
{
"x": 7.92,
"y": 0.92
},
{
"x": 8.92,
"y": 0.92
},
{
"x": 9.92,
"y": 0.92
},
{
"x": 10.92,
"y": 0.92
},
{
"x": -0.08,
"y": 1.92
},
{
"x": 0,
"y": 1.92
},
{
"x": 0.92,
"y": 1.92
},
{
"x": 1,
"y": 1.92
},
{
"x": 1.08,
"y": 1.92
},
{
"x": 0.92,
"y": 2
},
{
"x": 1.92,
"y": 1.92
},
{
"x": 2,
"y": 1.92
},
{
"x": 2.08,
"y": 1.92
},
{
"x": 1.92,
"y": 2
},
{
"x": 2,
"y": 2
},
{
"x": 2.08,
"y": 2
},
{
"x": 2.92,
"y": 1.92
},
{
"x": 3,
"y": 1.92
},
{
"x": 3.08,
"y": 1.92
},
{
"x": 2.92,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 3.08,
"y": 2
},
{
"x": 2.92,
"y": 2.08
},
{
"x": 3.92,
"y": 1.92
},
{
"x": 4,
"y": 1.92
},
{
"x": 4.08,
"y": 1.92
},
{
"x": 3.92,
"y": 2
},
{
"x": 4,
"y": 2
},
{
"x": 4.08,
"y": 2
},
{
"x": 3.92,
"y": 2.08
},
{
"x": 4.92,
"y": 1.92
},
{
"x": 5,
"y": 1.92
},
{
"x": 5.08,
"y": 1.92
},
{
"x": 4.92,
"y": 2
},
{
"x": 5,
"y": 2
},
{
"x": 5.08,
"y": 2
},
{
"x": 5.92,
"y": 1.92
},
{
"x": 6,
"y": 1.92
},
{
"x": 6.08,
"y": 1.92
},
{
"x": 5.92,
"y": 2
},
{
"x": 6.92,
"y": 1.92
},
{
"x": 7,
"y": 1.92
},
{
"x": 7.92,
"y": 1.92
},
{
"x": 8.92,
"y": 1.92
},
{
"x": 9.92,
"y": 1.92
},
{
"x": 10.92,
"y": 1.92
},
{
"x": -0.08,
"y": 2.92
},
{
"x": 0,
"y": 2.92
},
{
"x": 0.92,
"y": 2.92
},
{
"x": 1,
"y": 2.92
},
{
"x": 1.08,
"y": 2.92
},
{
"x": 1.92,
"y": 2.92
},
{
"x": 2,
"y": 2.92
},
{
"x": 2.08,
"y": 2.92
},
{
"x": 1.92,
"y": 3
},
{
"x": 2,
"y": 3
},
{
"x": 2.92,
"y": 2.92
},
{
"x": 3,
"y": 2.92
},
{
"x": 3.08,
"y": 2.92
},
{
"x": 2.92,
"y": 3
},
{
"x": 3,
"y": 3
},
{
"x": 3.08,
"y": 3
},
{
"x": 2.92,
"y": 3.08
},
{
"x": 3.92,
"y": 2.92
},
{
"x": 4,
"y": 2.92
},
{
"x": 4.08,
"y": 2.92
},
{
"x": 3.92,
"y": 3
},
{
"x": 4,
"y": 3
},
{
"x": 4.08,
"y": 3
},
{
"x": 3.92,
"y": 3.08
},
{
"x": 4.92,
"y": 2.92
},
{
"x": 5,
"y": 2.92
},
{
"x": 5.08,
"y": 2.92
},
{
"x": 4.92,
"y": 3
},
{
"x": 5,
"y": 3
},
{
"x": 5.08,
"y": 3
},
{
"x": 5.92,
"y": 2.92
},
{
"x": 6,
"y": 2.92
},
{
"x": 6.08,
"y": 2.92
},
{
"x": 5.92,
"y": 3
},
{
"x": 6,
"y": 3
},
{
"x": 6.92,
"y": 2.92
},
{
"x": 7,
"y": 2.92
},
{
"x": 7.08,
"y": 2.92
},
{
"x": 7.92,
"y": 2.92
},
{
"x": 8,
"y": 2.92
},
{
"x": 8.08,
"y": 2.92
},
{
"x": 8.92,
"y": 2.92
},
{
"x": 9,
"y": 2.92
},
{
"x": 9.92,
"y": 2.92
},
{
"x": 10,
"y": 2.92
},
{
"x": 10.92,
"y": 2.92
},
{
"x": -0.08,
"y": 3.92
},
{
"x": 0.92,
"y": 3.92
},
{
"x": 1,
"y": 3.92
},
{
"x": 1.08,
"y": 3.92
},
{
"x": 1.92,
"y": 3.92
},
{
"x": 2,
"y": 3.92
},
{
"x": 2.08,
"y": 3.92
},
{
"x": 1.92,
"y": 4
},
{
"x": 2.92,
"y": 3.92
},
{
"x": 3,
"y": 3.92
},
{
"x": 3.08,
"y": 3.92
},
{
"x": 2.92,
"y": 4
},
{
"x": 3,
"y": 4
},
{
"x": 3.92,
"y": 3.92
},
{
"x": 4,
"y": 3.92
},
{
"x": 4.08,
"y": 3.92
},
{
"x": 3.92,
"y": 4
},
{
"x": 4,
"y": 4
},
{
"x": 4.08,
"y": 4
},
{
"x": 4.92,
"y": 3.92
},
{
"x": 5,
"y": 3.92
},
{
"x": 5.08,
"y": 3.92
},
{
"x": 4.92,
"y": 4
},
{
"x": 5,
"y": 4
},
{
"x": 5.92,
"y": 3.92
},
{
"x": 6,
"y": 3.92
},
{
"x": 6.08,
"y": 3.92
},
{
"x": 5.92,
"y": 4
},
{
"x": 6.92,
"y": 3.92
},
{
"x": 7,
"y": 3.92
},
{
"x": 7.08,
"y": 3.92
},
{
"x": 6.92,
"y": 4
},
{
"x": 7.92,
"y": 3.92
},
{
"x": 8,
"y": 3.92
},
{
"x": 8.08,
"y": 3.92
},
{
"x": 7.92,
"y": 4
},
{
"x": 8,
"y": 4
},
{
"x": 8.92,
"y": 3.92
},
{
"x": 9,
"y": 3.92
},
{
"x": 9.08,
"y": 3.92
},
{
"x": 8.92,
"y": 4
},
{
"x": 9.92,
"y": 3.92
},
{
"x": 10,
"y": 3.92
},
{
"x": 10.08,
"y": 3.92
},
{
"x": 10.92,
"y": 3.92
},
{
"x": 11,
"y": 3.92
},
{
"x": -0.08,
"y": 4.92
},
{
"x": 0.92,
"y": 4.92
},
{
"x": 1,
"y": 4.92
},
{
"x": 1.92,
"y": 4.92
},
{
"x": 2,
"y": 4.92
},
{
"x": 2.08,
"y": 4.92
},
{
"x": 2.92,
"y": 4.92
},
{
"x": 3,
"y": 4.92
},
{
"x": 3.08,
"y": 4.92
},
{
"x": 2.92,
"y": 5
},
{
"x": 3.92,
"y": 4.92
},
{
"x": 4,
"y": 4.92
},
{
"x": 4.08,
"y": 4.92
},
{
"x": 3.92,
"y": 5
},
{
"x": 4.92,
"y": 4.92
},
{
"x": 5,
"y": 4.92
},
{
"x": 5.08,
"y": 4.92
},
{
"x": 5.92,
"y": 4.92
},
{
"x": 6,
"y": 4.92
},
{
"x": 6.08,
"y": 4.92
},
{
"x": 6.92,
"y": 4.92
},
{
"x": 7,
"y": 4.92
},
{
"x": 7.08,
"y": 4.92
},
{
"x": 6.92,
"y": 5
},
{
"x": 7.92,
"y": 4.92
},
{
"x": 8,
"y": 4.92
},
{
"x": 8.08,
"y": 4.92
},
{
"x": 7.92,
"y": 5
},
{
"x": 8,
"y": 5
},
{
"x": 8.92,
"y": 4.92
},
{
"x": 9,
"y": 4.92
},
{
"x": 9.08,
"y": 4.92
},
{
"x": 8.92,
"y": 5
},
{
"x": 9,
"y": 5
},
{
"x": 9.08,
"y": 5
},
{
"x": 9.92,
"y": 4.92
},
{
"x": 10,
"y": 4.92
},
{
"x": 10.08,
"y": 4.92
},
{
"x": 9.92,
"y": 5
},
{
"x": 10.92,
"y": 4.92
},
{
"x": 11,
"y": 4.92
},
{
"x": 11.08,
"y": 4.92
},
{
"x": -0.08,
"y": 5.92
},
{
"x": 0.92,
"y": 5.92
},
{
"x": 1.92,
"y": 5.92
},
{
"x": 2,
"y": 5.92
},
{
"x": 2.92,
"y": 5.92
},
{
"x": 3,
"y": 5.92
},
{
"x": 3.92,
"y": 5.92
},
{
"x": 4,
"y": 5.92
},
{
"x": 4.92,
"y": 5.92
},
{
"x": 5,
"y": 5.92
},
{
"x": 5.92,
"y": 5.92
},
{
"x": 6,
"y": 5.92
},
{
"x": 6.92,
"y": 5.92
},
{
"x": 7,
"y": 5.92
},
{
"x": 7.08,
"y": 5.92
},
{
"x": 7.92,
"y": 5.92
},
{
"x": 8,
"y": 5.92
},
{
"x": 8.08,
"y": 5.92
},
{
"x": 7.92,
"y": 6
},
{
"x": 8.92,
"y": 5.92
},
{
"x": 9,
"y": 5.92
},
{
"x": 9.08,
"y": 5.92
},
{
"x": 8.92,
"y": 6
},
{
"x": 9,
"y": 6
},
{
"x": 9.92,
"y": 5.92
},
{
"x": 10,
"y": 5.92
},
{
"x": 10.08,
"y": 5.92
},
{
"x": 9.92,
"y": 6
},
{
"x": 10.92,
"y": 5.92
},
{
"x": 11,
"y": 5.92
},
{
"x": 11.08,
"y": 5.92
},
{
"x": -0.08,
"y": 6.92
},
{
"x": 0.92,
"y": 6.92
},
{
"x": 1.92,
"y": 6.92
},
{
"x": 2.92,
"y": 6.92
},
{
"x": 3.92,
"y": 6.92
},
{
"x": 4.92,
"y": 6.92
},
{
"x": 5.92,
"y": 6.92
},
{
"x": 6.92,
"y": 6.92
},
{
"x": 7,
"y": 6.92
},
{
"x": 7.92,
"y": 6.92
},
{
"x": 8,
"y": 6.92
},
{
"x": 8.08,
"y": 6.92
},
{
"x": 8.92,
"y": 6.92
},
{
"x": 9,
"y": 6.92
},
{
"x": 9.08,
"y": 6.92
},
{
"x": 9.92,
"y": 6.92
},
{
"x": 10,
"y": 6.92
},
{
"x": 10.92,
"y": 6.92
},
{
"x": 11,
"y": 6.92
}
];
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": "Distribution · Bivariate density contours example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
},
"y": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
}
},
"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": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
}
],
"title": "Distribution · Bivariate density contours",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"binsX": 6,
"binsY": 5,
"levels": 4,
"mode": "histogram-2d-contour"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bivariate density contours uses runnable data and options to demonstrate normal density curve.",
"text": "Distribution · Bivariate density contours"
},
"width": "container",
"x": {
"field": "x",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.histogram2dContour('#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": "Distribution · Bivariate density contours example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
},
"y": {
"format": {
"type": "integer"
},
"labels": {
"orientation": "horizontal"
},
"ticks": {
"spacing": 8
}
}
},
"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": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
}
],
"title": "Distribution · Bivariate density contours",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"binsX": 6,
"binsY": 5,
"levels": 4,
"mode": "histogram-2d-contour"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bivariate density contours uses runnable data and options to demonstrate normal density curve.",
"text": "Distribution · Bivariate density contours"
},
"width": "container",
"x": {
"field": "x",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Frequency",
"type": "quantitative"
}
}Violin chart uses runnable data and options to demonstrate 2D histogram.
StatusLoading
violin2D histogramLoading
Row data and zero-copy TypedArray columns share one data contract.
seriesordinal | valuequantitative |
|---|---|
| Before launch | 44.8 |
| Before launch | 48.609 |
| Before launch | 51.351 |
| Before launch | 52.38 |
| Before launch | 51.584 |
| Before launch | 49.421 |
| Before launch | 46.777 |
| Before launch | 38.377 |
| Before launch | 37.656 |
| Before launch | 38.692 |
| Before launch | 41.286 |
| Before launch | 44.733 |
| Before launch | 48.059 |
| Before launch | 50.344 |
| Before launch | 44.729 |
| Before launch | 43.798 |
| Before launch | 41.794 |
| Before launch | 39.634 |
| Before launch | 38.32 |
| Before launch | 38.603 |
| Before launch | 40.742 |
| Before launch | 38.114 |
| Before launch | 42.518 |
| Before launch | 46.633 |
| Before launch | 49.548 |
| Before launch | 50.754 |
| Before launch | 50.304 |
| Before launch | 48.795 |
| Before launch | 40.859 |
| Before launch | 40.062 |
| Before launch | 40.777 |
| Before launch | 43.161 |
| Before launch | 46.801 |
| Before launch | 50.846 |
| Before launch | 54.285 |
| Before launch | 49.975 |
| After launch | 55.8 |
| After launch | 59.609 |
| After launch | 62.351 |
| After launch | 63.38 |
| After launch | 62.584 |
| After launch | 60.421 |
| After launch | 57.777 |
| After launch | 49.377 |
| After launch | 48.656 |
| After launch | 49.692 |
| After launch | 52.286 |
| After launch | 55.733 |
| After launch | 59.059 |
| After launch | 61.344 |
| After launch | 55.729 |
| After launch | 54.798 |
| After launch | 52.794 |
| After launch | 50.634 |
| After launch | 49.32 |
| After launch | 49.603 |
| After launch | 51.742 |
| After launch | 49.114 |
| After launch | 53.518 |
| After launch | 57.633 |
| After launch | 60.548 |
| After launch | 61.754 |
| After launch | 61.304 |
| After launch | 59.795 |
| After launch | 51.859 |
| After launch | 51.062 |
| After launch | 51.777 |
| After launch | 54.161 |
| After launch | 57.801 |
| After launch | 61.846 |
| After launch | 65.285 |
| After launch | 60.975 |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution · Violin chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 12
},
"ticks": false,
"title": {
"align": "end",
"padding": 36,
"text": "Cohort"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Distribution"
}
}
},
"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": "series",
"format": "auto",
"label": "Series"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Distribution · Violin chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "violin"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Violin chart uses runnable data and options to demonstrate 2D histogram.",
"text": "Distribution · Violin chart"
},
"width": "container",
"x": {
"field": "series",
"title": "Outcome score",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.violin('#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": "Distribution · Violin chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 12
},
"ticks": false,
"title": {
"align": "end",
"padding": 36,
"text": "Cohort"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Distribution"
}
}
},
"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": "series",
"format": "auto",
"label": "Series"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Distribution · Violin chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "violin"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Violin chart uses runnable data and options to demonstrate 2D histogram.",
"text": "Distribution · Violin chart"
},
"width": "container",
"x": {
"field": "series",
"title": "Outcome score",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Boxplot uses runnable data and options to demonstrate grid contour.
StatusLoading
boxplotgrid contourLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative | lowquantitative | q1quantitative | medianquantitative | q3quantitative | highquantitative |
|---|---|---|---|---|---|---|
| Starter | — | 12 | 19 | 27 | 34 | 43 |
| Team | — | 17 | 25 | 33 | 41 | 51 |
| Business | — | 21 | 31 | 40 | 49 | 60 |
| Enterprise | — | 28 | 39 | 48 | 58 | 71 |
Browser API
const data = [
{
"category": "Starter",
"high": 43,
"low": 12,
"median": 27,
"q1": 19,
"q3": 34
},
{
"category": "Team",
"high": 51,
"low": 17,
"median": 33,
"q1": 25,
"q3": 41
},
{
"category": "Business",
"high": 60,
"low": 21,
"median": 40,
"q1": 31,
"q3": 49
},
{
"category": "Enterprise",
"high": 71,
"low": 28,
"median": 48,
"q1": 39,
"q3": 58
}
];
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": "Distribution · Boxplot example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 12
},
"ticks": false,
"title": {
"align": "end",
"padding": 36,
"text": "Cohort"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Distribution"
}
}
},
"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": "category",
"format": "auto",
"label": "Category"
},
{
"field": "low",
"format": "number",
"label": "Low"
},
{
"field": "q1",
"format": "number",
"label": "Q1"
},
{
"field": "median",
"format": "number",
"label": "Median"
},
{
"field": "q3",
"format": "number",
"label": "Q3"
},
{
"field": "high",
"format": "number",
"label": "High"
}
],
"title": "Distribution · Boxplot",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"high": "high",
"low": "low",
"median": "median",
"q1": "q1",
"q3": "q3"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Boxplot uses runnable data and options to demonstrate grid contour.",
"text": "Distribution · Boxplot"
},
"width": "container",
"x": {
"field": "category",
"title": "Outcome score",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.boxplot('#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": "Distribution · Boxplot example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 12
},
"ticks": false,
"title": {
"align": "end",
"padding": 36,
"text": "Cohort"
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "number"
},
"title": {
"align": "center",
"padding": 58,
"text": "Distribution"
}
}
},
"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": "category",
"format": "auto",
"label": "Category"
},
{
"field": "low",
"format": "number",
"label": "Low"
},
{
"field": "q1",
"format": "number",
"label": "Q1"
},
{
"field": "median",
"format": "number",
"label": "Median"
},
{
"field": "q3",
"format": "number",
"label": "Q3"
},
{
"field": "high",
"format": "number",
"label": "High"
}
],
"title": "Distribution · Boxplot",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"high": "high",
"low": "low",
"median": "median",
"q1": "q1",
"q3": "q3"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Boxplot uses runnable data and options to demonstrate grid contour.",
"text": "Distribution · Boxplot"
},
"width": "container",
"x": {
"field": "category",
"title": "Outcome score",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
}Bell curve uses runnable data and options to demonstrate shared bins.
StatusLoading
bell-curveshared binsLoading
Row data and zero-copy TypedArray columns share one data contract.
valuequantitative | seriesordinal |
|---|---|
| 44.8 | Before launch |
| 48.609 | Before launch |
| 51.351 | Before launch |
| 52.38 | Before launch |
| 51.584 | Before launch |
| 49.421 | Before launch |
| 46.777 | Before launch |
| 38.377 | Before launch |
| 37.656 | Before launch |
| 38.692 | Before launch |
| 41.286 | Before launch |
| 44.733 | Before launch |
| 48.059 | Before launch |
| 50.344 | Before launch |
| 44.729 | Before launch |
| 43.798 | Before launch |
| 41.794 | Before launch |
| 39.634 | Before launch |
| 38.32 | Before launch |
| 38.603 | Before launch |
| 40.742 | Before launch |
| 38.114 | Before launch |
| 42.518 | Before launch |
| 46.633 | Before launch |
| 49.548 | Before launch |
| 50.754 | Before launch |
| 50.304 | Before launch |
| 48.795 | Before launch |
| 40.859 | Before launch |
| 40.062 | Before launch |
| 40.777 | Before launch |
| 43.161 | Before launch |
| 46.801 | Before launch |
| 50.846 | Before launch |
| 54.285 | Before launch |
| 49.975 | Before launch |
| 55.8 | After launch |
| 59.609 | After launch |
| 62.351 | After launch |
| 63.38 | After launch |
| 62.584 | After launch |
| 60.421 | After launch |
| 57.777 | After launch |
| 49.377 | After launch |
| 48.656 | After launch |
| 49.692 | After launch |
| 52.286 | After launch |
| 55.733 | After launch |
| 59.059 | After launch |
| 61.344 | After launch |
| 55.729 | After launch |
| 54.798 | After launch |
| 52.794 | After launch |
| 50.634 | After launch |
| 49.32 | After launch |
| 49.603 | After launch |
| 51.742 | After launch |
| 49.114 | After launch |
| 53.518 | After launch |
| 57.633 | After launch |
| 60.548 | After launch |
| 61.754 | After launch |
| 61.304 | After launch |
| 59.795 | After launch |
| 51.859 | After launch |
| 51.062 | After launch |
| 51.777 | After launch |
| 54.161 | After launch |
| 57.801 | After launch |
| 61.846 | After launch |
| 65.285 | After launch |
| 60.975 | After launch |
Browser API
const data = [
{
"sample": "Seoul · baseline · W1",
"series": "Before launch",
"value": 44.8,
"weight": 1
},
{
"sample": "Tokyo · baseline · W1",
"series": "Before launch",
"value": 48.609,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W1",
"series": "Before launch",
"value": 51.351,
"weight": 1.5
},
{
"sample": "Paris · baseline · W1",
"series": "Before launch",
"value": 52.38,
"weight": 1.75
},
{
"sample": "New York · baseline · W1",
"series": "Before launch",
"value": 51.584,
"weight": 1
},
{
"sample": "Sydney · baseline · W1",
"series": "Before launch",
"value": 49.421,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W2",
"series": "Before launch",
"value": 46.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W2",
"series": "Before launch",
"value": 38.377,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W2",
"series": "Before launch",
"value": 37.656,
"weight": 1
},
{
"sample": "Paris · baseline · W2",
"series": "Before launch",
"value": 38.692,
"weight": 1.25
},
{
"sample": "New York · baseline · W2",
"series": "Before launch",
"value": 41.286,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W2",
"series": "Before launch",
"value": 44.733,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W3",
"series": "Before launch",
"value": 48.059,
"weight": 1
},
{
"sample": "Tokyo · baseline · W3",
"series": "Before launch",
"value": 50.344,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W3",
"series": "Before launch",
"value": 44.729,
"weight": 1.5
},
{
"sample": "Paris · baseline · W3",
"series": "Before launch",
"value": 43.798,
"weight": 1.75
},
{
"sample": "New York · baseline · W3",
"series": "Before launch",
"value": 41.794,
"weight": 1
},
{
"sample": "Sydney · baseline · W3",
"series": "Before launch",
"value": 39.634,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W4",
"series": "Before launch",
"value": 38.32,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W4",
"series": "Before launch",
"value": 38.603,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W4",
"series": "Before launch",
"value": 40.742,
"weight": 1
},
{
"sample": "Paris · baseline · W4",
"series": "Before launch",
"value": 38.114,
"weight": 1.25
},
{
"sample": "New York · baseline · W4",
"series": "Before launch",
"value": 42.518,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W4",
"series": "Before launch",
"value": 46.633,
"weight": 1.75
},
{
"sample": "Seoul · baseline · W5",
"series": "Before launch",
"value": 49.548,
"weight": 1
},
{
"sample": "Tokyo · baseline · W5",
"series": "Before launch",
"value": 50.754,
"weight": 1.25
},
{
"sample": "Singapore · baseline · W5",
"series": "Before launch",
"value": 50.304,
"weight": 1.5
},
{
"sample": "Paris · baseline · W5",
"series": "Before launch",
"value": 48.795,
"weight": 1.75
},
{
"sample": "New York · baseline · W5",
"series": "Before launch",
"value": 40.859,
"weight": 1
},
{
"sample": "Sydney · baseline · W5",
"series": "Before launch",
"value": 40.062,
"weight": 1.25
},
{
"sample": "Seoul · baseline · W6",
"series": "Before launch",
"value": 40.777,
"weight": 1.5
},
{
"sample": "Tokyo · baseline · W6",
"series": "Before launch",
"value": 43.161,
"weight": 1.75
},
{
"sample": "Singapore · baseline · W6",
"series": "Before launch",
"value": 46.801,
"weight": 1
},
{
"sample": "Paris · baseline · W6",
"series": "Before launch",
"value": 50.846,
"weight": 1.25
},
{
"sample": "New York · baseline · W6",
"series": "Before launch",
"value": 54.285,
"weight": 1.5
},
{
"sample": "Sydney · baseline · W6",
"series": "Before launch",
"value": 49.975,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W1",
"series": "After launch",
"value": 55.8,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W1",
"series": "After launch",
"value": 59.609,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W1",
"series": "After launch",
"value": 62.351,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W1",
"series": "After launch",
"value": 63.38,
"weight": 1.75
},
{
"sample": "New York · post-launch · W1",
"series": "After launch",
"value": 62.584,
"weight": 1
},
{
"sample": "Sydney · post-launch · W1",
"series": "After launch",
"value": 60.421,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W2",
"series": "After launch",
"value": 57.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W2",
"series": "After launch",
"value": 49.377,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W2",
"series": "After launch",
"value": 48.656,
"weight": 1
},
{
"sample": "Paris · post-launch · W2",
"series": "After launch",
"value": 49.692,
"weight": 1.25
},
{
"sample": "New York · post-launch · W2",
"series": "After launch",
"value": 52.286,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W2",
"series": "After launch",
"value": 55.733,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W3",
"series": "After launch",
"value": 59.059,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W3",
"series": "After launch",
"value": 61.344,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W3",
"series": "After launch",
"value": 55.729,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W3",
"series": "After launch",
"value": 54.798,
"weight": 1.75
},
{
"sample": "New York · post-launch · W3",
"series": "After launch",
"value": 52.794,
"weight": 1
},
{
"sample": "Sydney · post-launch · W3",
"series": "After launch",
"value": 50.634,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W4",
"series": "After launch",
"value": 49.32,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W4",
"series": "After launch",
"value": 49.603,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W4",
"series": "After launch",
"value": 51.742,
"weight": 1
},
{
"sample": "Paris · post-launch · W4",
"series": "After launch",
"value": 49.114,
"weight": 1.25
},
{
"sample": "New York · post-launch · W4",
"series": "After launch",
"value": 53.518,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W4",
"series": "After launch",
"value": 57.633,
"weight": 1.75
},
{
"sample": "Seoul · post-launch · W5",
"series": "After launch",
"value": 60.548,
"weight": 1
},
{
"sample": "Tokyo · post-launch · W5",
"series": "After launch",
"value": 61.754,
"weight": 1.25
},
{
"sample": "Singapore · post-launch · W5",
"series": "After launch",
"value": 61.304,
"weight": 1.5
},
{
"sample": "Paris · post-launch · W5",
"series": "After launch",
"value": 59.795,
"weight": 1.75
},
{
"sample": "New York · post-launch · W5",
"series": "After launch",
"value": 51.859,
"weight": 1
},
{
"sample": "Sydney · post-launch · W5",
"series": "After launch",
"value": 51.062,
"weight": 1.25
},
{
"sample": "Seoul · post-launch · W6",
"series": "After launch",
"value": 51.777,
"weight": 1.5
},
{
"sample": "Tokyo · post-launch · W6",
"series": "After launch",
"value": 54.161,
"weight": 1.75
},
{
"sample": "Singapore · post-launch · W6",
"series": "After launch",
"value": 57.801,
"weight": 1
},
{
"sample": "Paris · post-launch · W6",
"series": "After launch",
"value": 61.846,
"weight": 1.25
},
{
"sample": "New York · post-launch · W6",
"series": "After launch",
"value": 65.285,
"weight": 1.5
},
{
"sample": "Sydney · post-launch · W6",
"series": "After launch",
"value": 60.975,
"weight": 1.75
}
];
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": "Distribution · Bell curve example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"ticks": {
"spacing": 8,
"values": [
18,
24,
30,
36,
39
]
}
},
"y": {
"format": {
"type": "integer"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Distribution · Bell curve",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "curve"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bell curve uses runnable data and options to demonstrate shared bins.",
"text": "Distribution · Bell curve"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"type": "quantitative"
}
};
Graflume.bellCurve('#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": "Distribution · Bell curve example"
},
"axes": {
"x": {
"format": {
"type": "integer"
},
"ticks": {
"spacing": 8,
"values": [
18,
24,
30,
36,
39
]
}
},
"y": {
"format": {
"type": "integer"
},
"ticks": {
"count": 5,
"spacing": 8
}
}
},
"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": "value",
"format": "number",
"label": "Value"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Distribution · Bell curve",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"group": "series",
"value": "value"
},
"options": {
"mode": "curve"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Bell curve uses runnable data and options to demonstrate shared bins.",
"text": "Distribution · Bell curve"
},
"width": "container",
"x": {
"field": "value",
"title": "Outcome score",
"type": "quantitative"
},
"y": {
"field": "value",
"title": "Frequency",
"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.
10 modes · 3 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
distribution | Distribution chart | distribution() | histogram | distribution | canvas |
histogram | Histogram | histogram() | histogram | histogram | canvas |
ecdf new · research-foundations-2026-08-25 | Empirical cumulative distribution | ecdf() | ecdf | distribution | canvas |
ccdf new · research-foundations-2026-08-25 | Complementary empirical distribution | ccdf() | ccdf | distribution | canvas |
kde new · research-foundations-2026-08-25 | Kernel density estimate | kde() | kde | distribution | canvas |
histogram-2d | Bivariate histogram | histogram2d() | histogram-2d | distribution | canvas |
histogram-2d-contour | Bivariate density contours | histogram2dContour() | histogram-2d-contour | distribution | canvas |
violin | Violin chart | violin() | violin | distribution | canvas |
boxplot | Boxplot | boxplot() | boxplot | boxplot | canvas |
bell-curve | Bell curve | bellCurve() | bell-curve | distribution | canvas |
| Identifier | Canonical mode ID |
|---|---|
bellcurve | bell-curve |
boxplot | boxplot |
histogram | histogram |
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.