ARIA · table fallback접근성
Canvas ARIA 메타데이터에 텍스트 요약과 표 대체 표현을 함께 제공합니다.
Graflume · Alpha
시간 필드의 특정 프레임을 선택해 다변량 점의 변화를 비교합니다. Graflume 공개 카탈로그에 등록된 이 계열의 모든 실행 모드입니다. 각 탭은 독립 데이터, 옵션, Quick API와 지원 기능 근거를 가집니다.
차트 계열 · 기본 차트 계열
시간 필드의 특정 프레임을 선택해 다변량 점의 변화를 비교합니다.
motion()graflumemotion차트 고유 기능
Graflume 공개 카탈로그에 등록된 이 계열의 모든 실행 모드입니다. 각 탭은 독립 데이터, 옵션, Quick API와 지원 기능 근거를 가집니다.
Motion chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: stable keys · frame/cumulative/window playback.
상태불러오는 중
motionstable keysframe/cumulative/window playbackenter/update/exit transitionsgeometry and color tweenseek/scrubber/step/rate/loopreduced motionreverse playbackloop subrangesnamed frames불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
xquantitative | yquantitative | sizequantitative | groupordinal | timeordinal |
|---|---|---|---|---|
| 14 | 38 | 28 | Starter | 2025 |
| 21 | 42 | 28 | Starter | 2026 |
| 20 | 45 | 34 | Starter | 2025 |
| 28 | 49 | 34 | Starter | 2026 |
| 25 | 41 | 31 | Starter | 2025 |
| 34 | 45 | 31 | Starter | 2026 |
| 38 | 57 | 64 | Growth | 2025 |
| 48 | 61 | 64 | Growth | 2026 |
| 45 | 63 | 78 | Growth | 2025 |
| 56 | 67 | 78 | Growth | 2026 |
| 50 | 55 | 70 | Growth | 2025 |
| 62 | 59 | 70 | Growth | 2026 |
| 64 | 72 | 112 | Scale | 2025 |
| 77 | 76 | 112 | Scale | 2026 |
| 72 | 79 | 128 | Scale | 2025 |
| 86 | 83 | 128 | Scale | 2026 |
| 78 | 70 | 118 | Scale | 2025 |
| 93 | 74 | 118 | Scale | 2026 |
| 61 | 88 | 52 | Opportunity | 2025 |
| 77 | 92 | 52 | Opportunity | 2026 |
브라우저 API
const data = [
{
"group": "Starter",
"name": "Atlas Lab",
"size": 28,
"time": "2025",
"x": 14,
"y": 38,
"z": 7
},
{
"group": "Starter",
"name": "Atlas Lab",
"size": 28,
"time": "2026",
"x": 21,
"y": 42,
"z": 7
},
{
"group": "Starter",
"name": "Beacon Co",
"size": 34,
"time": "2025",
"x": 20,
"y": 45,
"z": 10
},
{
"group": "Starter",
"name": "Beacon Co",
"size": 34,
"time": "2026",
"x": 28,
"y": 49,
"z": 10
},
{
"group": "Starter",
"name": "Civic Data",
"size": 31,
"time": "2025",
"x": 25,
"y": 41,
"z": 12
},
{
"group": "Starter",
"name": "Civic Data",
"size": 31,
"time": "2026",
"x": 34,
"y": 45,
"z": 12
},
{
"group": "Growth",
"name": "Delta Ops",
"size": 64,
"time": "2025",
"x": 38,
"y": 57,
"z": 15
},
{
"group": "Growth",
"name": "Delta Ops",
"size": 64,
"time": "2026",
"x": 48,
"y": 61,
"z": 15
},
{
"group": "Growth",
"name": "Ember Labs",
"size": 78,
"time": "2025",
"x": 45,
"y": 63,
"z": 18
},
{
"group": "Growth",
"name": "Ember Labs",
"size": 78,
"time": "2026",
"x": 56,
"y": 67,
"z": 18
},
{
"group": "Growth",
"name": "Foundry BI",
"size": 70,
"time": "2025",
"x": 50,
"y": 55,
"z": 21
},
{
"group": "Growth",
"name": "Foundry BI",
"size": 70,
"time": "2026",
"x": 62,
"y": 59,
"z": 21
},
{
"group": "Scale",
"name": "Harbor AI",
"size": 112,
"time": "2025",
"x": 64,
"y": 72,
"z": 25
},
{
"group": "Scale",
"name": "Harbor AI",
"size": 112,
"time": "2026",
"x": 77,
"y": 76,
"z": 25
},
{
"group": "Scale",
"name": "Lattice Co",
"size": 128,
"time": "2025",
"x": 72,
"y": 79,
"z": 28
},
{
"group": "Scale",
"name": "Lattice Co",
"size": 128,
"time": "2026",
"x": 86,
"y": 83,
"z": 28
},
{
"group": "Scale",
"name": "Meridian",
"size": 118,
"time": "2025",
"x": 78,
"y": 70,
"z": 31
},
{
"group": "Scale",
"name": "Meridian",
"size": 118,
"time": "2026",
"x": 93,
"y": 74,
"z": 31
},
{
"group": "Opportunity",
"name": "Northstar",
"size": 52,
"time": "2025",
"x": 61,
"y": 88,
"z": 34
},
{
"group": "Opportunity",
"name": "Northstar",
"size": 52,
"time": "2026",
"x": 77,
"y": 92,
"z": 34
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Motion example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"title": {
"padding": 36,
"text": "Reach score"
}
},
"y": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"offset": 6,
"position": "right",
"title": {
"padding": 58,
"text": "Quality score"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "차트 조작",
"enterFullscreen": "전체 화면 열기",
"exitFullscreen": "전체 화면 닫기",
"exportPng": "PNG 다운로드",
"hideAnnotations": "설명 말풍선 숨기기",
"loop": "반복 재생",
"nextFrame": "다음 프레임",
"pause": "일시 정지",
"play": "재생",
"previousFrame": "이전 프레임",
"reset": "보기 초기화",
"seek": "재생 위치",
"showAnnotations": "설명 말풍선 표시",
"speed": "재생 속도",
"zoomIn": "확대",
"zoomOut": "축소"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "size",
"format": "number",
"label": "크기"
},
{
"field": "group",
"format": "auto",
"label": "그룹"
},
{
"field": "time",
"format": "auto",
"label": "시점"
}
],
"title": "Motion",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "group",
"size": "size",
"time": "time"
},
"options": {
"frame": "2026"
}
},
"padding": {
"bottom": 58,
"left": 30,
"right": 88,
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Motion chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: stable keys · frame/cumulative/window playback.",
"text": "Motion"
},
"width": "container",
"x": {
"field": "x",
"title": "Engagement score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Satisfaction score",
"type": "quantitative"
}
};
Graflume.motion('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Motion example"
},
"axes": {
"x": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"title": {
"padding": 36,
"text": "Reach score"
}
},
"y": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"offset": 6,
"position": "right",
"title": {
"padding": 58,
"text": "Quality score"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "차트 조작",
"enterFullscreen": "전체 화면 열기",
"exitFullscreen": "전체 화면 닫기",
"exportPng": "PNG 다운로드",
"hideAnnotations": "설명 말풍선 숨기기",
"loop": "반복 재생",
"nextFrame": "다음 프레임",
"pause": "일시 정지",
"play": "재생",
"previousFrame": "이전 프레임",
"reset": "보기 초기화",
"seek": "재생 위치",
"showAnnotations": "설명 말풍선 표시",
"speed": "재생 속도",
"zoomIn": "확대",
"zoomOut": "축소"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"fields": [
{
"field": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "size",
"format": "number",
"label": "크기"
},
{
"field": "group",
"format": "auto",
"label": "그룹"
},
{
"field": "time",
"format": "auto",
"label": "시점"
}
],
"title": "Motion",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "group",
"size": "size",
"time": "time"
},
"options": {
"frame": "2026"
}
},
"padding": {
"bottom": 58,
"left": 30,
"right": 88,
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Motion chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: stable keys · frame/cumulative/window playback.",
"text": "Motion"
},
"width": "container",
"x": {
"field": "x",
"title": "Engagement score",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Satisfaction score",
"type": "quantitative"
}
}시간 필드와 안정적인 키를 기준으로 프레임을 재생하고, 진입·변경·퇴장을 부드럽게 전환합니다.
상태불러오는 중
playbacksmooth-transitions불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
xquantitative | yquantitative | sizequantitative | groupordinal | timeordinal |
|---|---|---|---|---|
| 12 | 42 | 20 | A | 2025 |
| 19 | 46 | 20 | A | 2026 |
| 24 | 55 | 85 | B | 2025 |
| 32 | 60 | 85 | B | 2026 |
| 38 | 33 | 55 | C | 2025 |
| 47 | 39 | 55 | C | 2026 |
브라우저 API
const data = [
{
"group": "A",
"size": 20,
"time": "2025",
"x": 12,
"y": 42
},
{
"group": "A",
"size": 20,
"time": "2026",
"x": 19,
"y": 46
},
{
"group": "B",
"size": 85,
"time": "2025",
"x": 24,
"y": 55
},
{
"group": "B",
"size": 85,
"time": "2026",
"x": 32,
"y": 60
},
{
"group": "C",
"size": 55,
"time": "2025",
"x": 38,
"y": 33
},
{
"group": "C",
"size": 55,
"time": "2026",
"x": 47,
"y": 39
}
];
const options = {
"axes": {
"x": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"title": {
"padding": 36,
"text": "Reach score"
}
},
"y": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"offset": 6,
"position": "right",
"title": {
"padding": 58,
"text": "Quality score"
}
}
},
"height": 620,
"interaction": {
"controls": {
"labels": {
"controls": "차트 조작",
"enterFullscreen": "전체 화면 열기",
"exitFullscreen": "전체 화면 닫기",
"exportPng": "PNG 다운로드",
"hideAnnotations": "설명 말풍선 숨기기",
"loop": "반복 재생",
"nextFrame": "다음 프레임",
"pause": "일시 정지",
"play": "재생",
"previousFrame": "이전 프레임",
"reset": "보기 초기화",
"seek": "재생 위치",
"showAnnotations": "설명 말풍선 표시",
"speed": "재생 속도",
"zoomIn": "확대",
"zoomOut": "축소"
},
"playback": true
},
"hover": true,
"playback": {
"autoplay": false,
"field": "time",
"filter": false,
"interval": 1000,
"key": "group",
"loop": false,
"mode": "frame",
"rate": 1,
"transition": {
"duration": 600,
"easing": "ease-in-out"
},
"windowSize": 1
},
"tooltip": {
"fields": [
{
"field": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "size",
"format": "number",
"label": "크기"
},
{
"field": "group",
"format": "auto",
"label": "그룹"
},
{
"field": "time",
"format": "auto",
"label": "시점"
}
],
"title": "Motion · 재생과 전환",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "group",
"size": "size",
"time": "time"
},
"options": {
"frame": "2026"
}
},
"padding": {
"bottom": 58,
"left": 30,
"right": 88,
"top": 24
},
"width": "container",
"x": {
"field": "x",
"title": "x",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "y",
"type": "quantitative"
}
};
Graflume.motion('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"title": {
"padding": 36,
"text": "Reach score"
}
},
"y": {
"format": {
"fractionDigits": 0,
"type": "number"
},
"offset": 6,
"position": "right",
"title": {
"padding": 58,
"text": "Quality score"
}
}
},
"height": 620,
"interaction": {
"controls": {
"labels": {
"controls": "차트 조작",
"enterFullscreen": "전체 화면 열기",
"exitFullscreen": "전체 화면 닫기",
"exportPng": "PNG 다운로드",
"hideAnnotations": "설명 말풍선 숨기기",
"loop": "반복 재생",
"nextFrame": "다음 프레임",
"pause": "일시 정지",
"play": "재생",
"previousFrame": "이전 프레임",
"reset": "보기 초기화",
"seek": "재생 위치",
"showAnnotations": "설명 말풍선 표시",
"speed": "재생 속도",
"zoomIn": "확대",
"zoomOut": "축소"
},
"playback": true
},
"hover": true,
"playback": {
"autoplay": false,
"field": "time",
"filter": false,
"interval": 1000,
"key": "group",
"loop": false,
"mode": "frame",
"rate": 1,
"transition": {
"duration": 600,
"easing": "ease-in-out"
},
"windowSize": 1
},
"tooltip": {
"fields": [
{
"field": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "size",
"format": "number",
"label": "크기"
},
{
"field": "group",
"format": "auto",
"label": "그룹"
},
{
"field": "time",
"format": "auto",
"label": "시점"
}
],
"title": "Motion · 재생과 전환",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "group",
"size": "size",
"time": "time"
},
"options": {
"frame": "2026"
}
},
"padding": {
"bottom": 58,
"left": 30,
"right": 88,
"top": 24
},
"width": "container",
"x": {
"field": "x",
"title": "x",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "y",
"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.
1 modes · 0 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
motion | Motion chart | motion() | default | motion | canvas |
매뉴얼
ARIA · table fallbackCanvas ARIA 메타데이터에 텍스트 요약과 표 대체 표현을 함께 제공합니다.
standard · large · ultrastandard·large·ultra 프로필은 렌더링 작업량을 제한합니다.