ARIA · table fallback접근성
Canvas ARIA 메타데이터에 텍스트 요약과 표 대체 표현을 함께 제공합니다.
Graflume · Alpha
내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.
차트 계열 · 기본 차트 계열
내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.
map()graflumemap기본 구현
필수 데이터와 차트 고유 인코딩만 사용한 출발점입니다. 아래 코드를 펼치면 그대로 실행할 수 있습니다.
내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.
상태불러오는 중
minimal-implementation불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}공통 기능
기능 탭을 선택해 헤더, 도구 설명, 테마, 범례, 강조, 말풍선, 선택, 화면 제어와 접근성을 하나씩 적용한 결과와 코드를 비교하세요. 데이터 표식 위에 마우스를 올리세요. 지원하는 차트에서는 축을 따라 커서를 움직이면 가장 가까운 값을 볼 수 있습니다. 모든 정확한 값은 아래 표에서 확인할 수 있습니다.
차트 안에 제목과 보조 설명을 넣어 무엇을 보여주는지 먼저 밝힙니다.
상태불러오는 중
header불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"title": {
"subtitle": "Map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: point/region/choropleth/route/heat halo · flat geodesics.",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"title": {
"subtitle": "Map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: point/region/choropleth/route/heat halo · flat geodesics.",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}마크 또는 축을 가리키면 정확한 값을 보여줍니다. 날짜·시간은 locale, 형식과 시간대를 사용자가 선언형 옵션으로 정할 수 있습니다.
상태불러오는 중
tooltip불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"field": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 도구 설명",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"hover": true,
"tooltip": {
"fields": [
{
"field": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 도구 설명",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}상단 선택기의 현재 내장 테마를 옵션에 적용하고 모든 활성 예제를 함께 갱신합니다.
상태불러오는 중
theme불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"theme": "graflume-light",
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"theme": "graflume-light",
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}계열, 범주 또는 연속 값의 시각적 의미를 차트와 함께 설명합니다.
상태불러오는 중
legendlegend · explicit · 1 channels불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Activity · size"
}
],
"labels": {
"hide": "숨기기",
"show": "표시"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Map · 범례",
"visible": true
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Activity · size"
}
],
"labels": {
"hide": "숨기기",
"show": "표시"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Map · 범례",
"visible": true
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}대표 데이터나 공간 위치를 시각적으로 강조해 읽을 지점을 안내합니다.
상태불러오는 중
highlighthighlights[] · datum · longitude불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
}
}
],
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
}
}
],
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}자동 충돌 회피와 다국어 줄바꿈을 사용하는 설명 말풍선을 표시합니다.
상태불러오는 중
calloutannotations[] · datum · longitude · callout · placement:auto불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"annotations": [
{
"connector": {
"visible": true
},
"detail": "데이터, 축 범위 또는 화면 위치에 사용자가 작성한 안전한 텍스트 설명을 연결합니다.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
},
"text": "포인트·범위 하이라이트 · 2.35"
}
],
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": true,
"labels": {
"controls": "차트 조작",
"enterFullscreen": "전체 화면 열기",
"exitFullscreen": "전체 화면 닫기",
"exportPng": "PNG 다운로드",
"hideAnnotations": "설명 말풍선 숨기기",
"loop": "반복 재생",
"nextFrame": "다음 프레임",
"pause": "일시 정지",
"play": "재생",
"previousFrame": "이전 프레임",
"reset": "보기 초기화",
"seek": "재생 위치",
"showAnnotations": "설명 말풍선 표시",
"speed": "재생 속도",
"zoomIn": "확대",
"zoomOut": "축소"
}
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"annotations": [
{
"connector": {
"visible": true
},
"detail": "데이터, 축 범위 또는 화면 위치에 사용자가 작성한 안전한 텍스트 설명을 연결합니다.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
},
"text": "포인트·범위 하이라이트 · 2.35"
}
],
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"controls": {
"annotations": true,
"labels": {
"controls": "차트 조작",
"enterFullscreen": "전체 화면 열기",
"exitFullscreen": "전체 화면 닫기",
"exportPng": "PNG 다운로드",
"hideAnnotations": "설명 말풍선 숨기기",
"loop": "반복 재생",
"nextFrame": "다음 프레임",
"pause": "일시 정지",
"play": "재생",
"previousFrame": "이전 프레임",
"reset": "보기 초기화",
"seek": "재생 위치",
"showAnnotations": "설명 말풍선 표시",
"speed": "재생 속도",
"zoomIn": "확대",
"zoomOut": "축소"
}
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}데이터를 선택하고 토글하며 배경이나 Esc 키로 안전하게 해제합니다.
상태불러오는 중
selectionselection · multiple · toggle불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"selection": {
"ariaLabel": "대화형 선택",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "longitude",
"mode": "multiple",
"toggle": true
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"height": 620,
"interaction": {
"selection": {
"ariaLabel": "대화형 선택",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "longitude",
"mode": "multiple",
"toggle": true
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}확대, 이동, 초기화, 투영, 전체 화면과 PNG 내보내기 메뉴를 각각 표시하거나 숨깁니다. controls: false이면 제어 막대 전체를 제거합니다.
상태불러오는 중
controls불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"axes": {
"x": false,
"y": false
},
"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
},
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"axes": {
"x": false,
"y": false
},
"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
},
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}ARIA 설명, 키보드 안내와 의미 있는 데이터 표를 함께 제공합니다.
상태불러오는 중
accessibility불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 접근성 example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 접근성 example"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}차트 고유 기능
기존 Map 모드와 함께 한 국가, 여러 국가, 한 국가의 주요 행정구역, 여러 지역, 국가·지역 혼합 선택, 세계 상세 카탈로그와 자동 맞춤·상세도·라벨을 기능별 탭으로 실행합니다.
Geographic region chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth basemap · general fit and clip policy.
상태불러오는 중
geoembedded Natural Earth basemapgeneral fit and clip policy불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
regionordinal | valuequantitative |
|---|---|
| KR | 92 |
| JPN | 84 |
| SGP | 79 |
| USA | 88 |
| BRA | 63 |
| FRA | 76 |
| ZAF | 58 |
| AUS | 72 |
브라우저 API
const data = [
{
"region": "KR",
"value": 92
},
{
"region": "JPN",
"value": 84
},
{
"region": "SGP",
"value": 79
},
{
"region": "USA",
"value": 88
},
{
"region": "BRA",
"value": 63
},
{
"region": "FRA",
"value": 76
},
{
"region": "ZAF",
"value": 58
},
{
"region": "AUS",
"value": 72
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "region",
"format": "auto",
"label": "Region"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"options": {
"mode": "choropleth"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Geographic region chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth basemap · general fit and clip policy.",
"text": "Map"
},
"width": "container",
"x": {
"field": "region",
"title": "Longitude",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.geo('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "region",
"format": "auto",
"label": "Region"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"options": {
"mode": "choropleth"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Geographic region chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth basemap · general fit and clip policy.",
"text": "Map"
},
"width": "container",
"x": {
"field": "region",
"title": "Longitude",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Latitude",
"type": "quantitative"
}
}Map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: point/region/choropleth/route/heat halo · flat geodesics.
상태불러오는 중
mappoint/region/choropleth/route/heat haloflat geodesics불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: point/region/choropleth/route/heat halo · flat geodesics.",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: point/region/choropleth/route/heat halo · flat geodesics.",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Flow map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: optional graticule · provider-backed tile lifecycle, cache and attribution.
상태불러오는 중
flow-mapoptional graticuleprovider-backed tile lifecycle, cache and attribution불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | longitude2quantitative | latitude2quantitative | valuequantitative |
|---|---|---|---|---|
| 126.98 | 37.57 | 139.69 | 35.68 | 92 |
| 139.69 | 35.68 | 103.82 | 1.35 | 78 |
| 103.82 | 1.35 | 77.21 | 28.61 | 64 |
| 77.21 | 28.61 | 2.35 | 48.86 | 58 |
| 2.35 | 48.86 | -74 | 40.71 | 73 |
| -74 | 40.71 | -122.42 | 37.77 | 88 |
| -122.42 | 37.77 | -99.13 | 19.43 | 69 |
| 151.21 | -33.87 | 126.98 | 37.57 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Flow map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "longitude2",
"format": "number",
"label": "Longitude2"
},
{
"field": "latitude2",
"format": "number",
"label": "Latitude2"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Flow map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"latitude2": "latitude2",
"longitude2": "longitude2",
"value": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Flow map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: optional graticule · provider-backed tile lifecycle, cache and attribution.",
"text": "Map · Flow map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.flowMap('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Flow map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "longitude2",
"format": "number",
"label": "Longitude2"
},
{
"field": "latitude2",
"format": "number",
"label": "Latitude2"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Flow map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"latitude2": "latitude2",
"longitude2": "longitude2",
"value": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Flow map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: optional graticule · provider-backed tile lifecycle, cache and attribution.",
"text": "Map · Flow map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Geographic heatmap 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: bounded equirectangular viewport and coordinate validation · country, subdivision, and arbitrary-feature multi-selection.
상태불러오는 중
geo-heatmapbounded equirectangular viewport and coordinate validationcountry, subdivision, and arbitrary-feature multi-selection불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Geographic heatmap example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Geographic heatmap",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"value": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Geographic heatmap 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: bounded equirectangular viewport and coordinate validation · country, subdivision, and arbitrary-feature multi-selection.",
"text": "Map · Geographic heatmap"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.geoHeatmap('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Geographic heatmap example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Geographic heatmap",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"value": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Geographic heatmap 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: bounded equirectangular viewport and coordinate validation · country, subdivision, and arbitrary-feature multi-selection.",
"text": "Map · Geographic heatmap"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Map bubble chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth attribution toggle · selection-aware automatic bounds and overlay clipping.
상태불러오는 중
map-bubbleembedded Natural Earth attribution toggleselection-aware automatic bounds and overlay clipping불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Map bubble chart example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Map bubble chart",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map bubble chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth attribution toggle · selection-aware automatic bounds and overlay clipping.",
"text": "Map · Map bubble chart"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.mapBubble('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Map bubble chart example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Map bubble chart",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map bubble chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth attribution toggle · selection-aware automatic bounds and overlay clipping.",
"text": "Map · Map bubble chart"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Map line chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: globe great-circle routes · versioned lazy boundary packs with byte-length and SHA-256 verification.
상태불러오는 중
map-lineglobe great-circle routesversioned lazy boundary packs with byte-length and SHA-256 verification불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | longitude2quantitative | latitude2quantitative | valuequantitative |
|---|---|---|---|---|
| 126.98 | 37.57 | 139.69 | 35.68 | 92 |
| 139.69 | 35.68 | 103.82 | 1.35 | 78 |
| 103.82 | 1.35 | 77.21 | 28.61 | 64 |
| 77.21 | 28.61 | 2.35 | 48.86 | 58 |
| 2.35 | 48.86 | -74 | 40.71 | 73 |
| -74 | 40.71 | -122.42 | 37.77 | 88 |
| -122.42 | 37.77 | -99.13 | 19.43 | 69 |
| 151.21 | -33.87 | 126.98 | 37.57 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Map line chart example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "longitude2",
"format": "number",
"label": "Longitude2"
},
{
"field": "latitude2",
"format": "number",
"label": "Latitude2"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Map line chart",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"latitude2": "latitude2",
"longitude2": "longitude2",
"value": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map line chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: globe great-circle routes · versioned lazy boundary packs with byte-length and SHA-256 verification.",
"text": "Map · Map line chart"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.mapLine('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Map line chart example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "longitude2",
"format": "number",
"label": "Longitude2"
},
{
"field": "latitude2",
"format": "number",
"label": "Latitude2"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Map line chart",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"latitude2": "latitude2",
"longitude2": "longitude2",
"value": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map line chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: globe great-circle routes · versioned lazy boundary packs with byte-length and SHA-256 verification.",
"text": "Map · Map line chart"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Map point chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: back-face occlusion and orbit · bounded coordinate-detail preparation without feature or ring sampling.
상태불러오는 중
map-pointback-face occlusion and orbitbounded coordinate-detail preparation without feature or ring sampling불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Map point chart example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Map point chart",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map point chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: back-face occlusion and orbit · bounded coordinate-detail preparation without feature or ring sampling.",
"text": "Map · Map point chart"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.mapPoint('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Map point chart example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · Map point chart",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Map point chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: back-face occlusion and orbit · bounded coordinate-detail preparation without feature or ring sampling.",
"text": "Map · Map point chart"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Tiled map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: source/layer/projection lifecycle · explicit feature-to-row joins and collision-aware geographic labels.
상태불러오는 중
tiled-mapsource/layer/projection lifecycleexplicit feature-to-row joins and collision-aware geographic labels불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative |
|---|---|
| 126.98 | 37.57 |
| 139.69 | 35.68 |
| 103.82 | 1.35 |
| 77.21 | 28.61 |
| 2.35 | 48.86 |
| -74 | 40.71 |
| -122.42 | 37.77 |
| 151.21 | -33.87 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Tiled map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
}
],
"title": "Map · Tiled map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"options": {
"graticule": true
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Tiled map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: source/layer/projection lifecycle · explicit feature-to-row joins and collision-aware geographic labels.",
"text": "Map · Tiled map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.tiledMap('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · Tiled map example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
}
],
"title": "Map · Tiled map",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"options": {
"graticule": true
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Tiled map 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: source/layer/projection lifecycle · explicit feature-to-row joins and collision-aware geographic labels.",
"text": "Map · Tiled map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}Natural Earth land and borders on a sphere with optional points and routes. 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: GeoJSON and TopoJSON.
상태불러오는 중
globeGeoJSON and TopoJSON불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
kindordinal | longitudequantitative | latitudequantitative | labelordinal | valuequantitative | sizequantitative | fromLongitudequantitative | fromLatitudequantitative | toLongitudequantitative | toLatitudequantitative |
|---|---|---|---|---|---|---|---|---|---|
| point | 126.978 | 37.5665 | Seoul | 96 | 10 | — | — | — | — |
| point | -74.006 | 40.7128 | New York | 88 | 9 | — | — | — | — |
| point | 151.2093 | -33.8688 | Sydney | 74 | 8 | — | — | — | — |
| point | 2.3522 | 48.8566 | Paris | 82 | 8 | — | — | — | — |
| point | 18.4241 | -33.9249 | Cape Town | 69 | 7 | — | — | — | — |
| point | -46.6333 | -23.5505 | São Paulo | 77 | 8 | — | — | — | — |
| route | — | — | Seoul–New York | — | — | 126.978 | 37.5665 | -74.006 | 40.7128 |
| route | — | — | Seoul–Sydney | — | — | 126.978 | 37.5665 | 151.2093 | -33.8688 |
| route | — | — | New York–Paris | — | — | -74.006 | 40.7128 | 2.3522 | 48.8566 |
| route | — | — | Paris–Cape Town | — | — | 2.3522 | 48.8566 | 18.4241 | -33.9249 |
| route | — | — | São Paulo–Cape Town | — | — | -46.6333 | -23.5505 | 18.4241 | -33.9249 |
브라우저 API
const data = {
"points": [
{
"label": "Seoul",
"latitude": 37.5665,
"longitude": 126.978,
"size": 10,
"value": 96
},
{
"label": "New York",
"latitude": 40.7128,
"longitude": -74.006,
"size": 9,
"value": 88
},
{
"label": "Sydney",
"latitude": -33.8688,
"longitude": 151.2093,
"size": 8,
"value": 74
},
{
"label": "Paris",
"latitude": 48.8566,
"longitude": 2.3522,
"size": 8,
"value": 82
},
{
"label": "Cape Town",
"latitude": -33.9249,
"longitude": 18.4241,
"size": 7,
"value": 69
},
{
"label": "São Paulo",
"latitude": -23.5505,
"longitude": -46.6333,
"size": 8,
"value": 77
}
],
"routes": [
{
"from": [
126.978,
37.5665
],
"label": "Seoul–New York",
"to": [
-74.006,
40.7128
]
},
{
"from": [
126.978,
37.5665
],
"label": "Seoul–Sydney",
"to": [
151.2093,
-33.8688
]
},
{
"from": [
-74.006,
40.7128
],
"label": "New York–Paris",
"to": [
2.3522,
48.8566
]
},
{
"from": [
2.3522,
48.8566
],
"label": "Paris–Cape Town",
"to": [
18.4241,
-33.9249
]
},
{
"from": [
-46.6333,
-23.5505
],
"label": "São Paulo–Cape Town",
"to": [
18.4241,
-33.9249
]
}
]
};
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"maxRows": 100,
"table": true
},
"ariaLabel": "Map · Natural Earth land and borders on a sphere with optional points and routes. · 차트 계열",
"basemap": "natural-earth",
"borderColor": "#d7e3d5",
"camera": {
"distance": 4.8,
"fov": 40,
"pitch": 0.38,
"yaw": 0.35
},
"create": {
"autoResize": true,
"height": 420
},
"graticule": false,
"id": "manual-map-globe",
"interaction": {
"controls": true,
"labels": {
"chart": "Map · Natural Earth land and borders on a sphere with optional points and routes. · 차트 계열",
"contextLost": "WebGL 연결이 중단되었습니다. 다시 시도해 차트를 복구해 주세요.",
"exportPng": "PNG 다운로드",
"fullscreen": "전체 화면 열기 / 전체 화면 닫기",
"hideAnnotations": "설명 말풍선 숨기기",
"instructions": "Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.",
"orbit": "차트 조작 · 3D ⟳",
"pan": "차트 조작 · 3D ↔",
"projection": "차트 조작 · 3D ◇",
"reset": "보기 초기화",
"showAnnotations": "설명 말풍선 표시",
"toolbar": "차트 조작",
"unavailable": "이 환경에서는 WebGL을 사용할 수 없어 3D 차트를 표시할 수 없습니다.",
"zoomIn": "확대",
"zoomOut": "축소"
},
"orbit": true,
"pan": true,
"picking": true,
"tooltip": {
"fields": [
"kind",
"longitude",
"latitude",
"label",
"value",
"size",
"fromLongitude",
"fromLatitude",
"toLongitude",
"toLatitude"
],
"title": "Map · Natural Earth land and borders on a sphere with optional points and routes."
},
"wheel": "modifier",
"zoom": true
},
"landColor": "#79a78d",
"lighting": {
"ambient": 0.48,
"diffuse": 0.86,
"direction": [
-0.45,
0.82,
0.62
]
},
"oceanColor": "#0b2a4a",
"pointColor": "#fb7185",
"routeColor": "#fbbf24",
"theme": "graflume-light",
"title": "Map · Natural Earth land and borders on a sphere with optional points and routes."
};
GraflumeSpatial.globe('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"maxRows": 100,
"table": true
},
"ariaLabel": "Map · Natural Earth land and borders on a sphere with optional points and routes. · 차트 계열",
"basemap": "natural-earth",
"borderColor": "#d7e3d5",
"camera": {
"distance": 4.8,
"fov": 40,
"pitch": 0.38,
"yaw": 0.35
},
"create": {
"autoResize": true,
"height": 420
},
"graticule": false,
"id": "manual-map-globe",
"interaction": {
"controls": true,
"labels": {
"chart": "Map · Natural Earth land and borders on a sphere with optional points and routes. · 차트 계열",
"contextLost": "WebGL 연결이 중단되었습니다. 다시 시도해 차트를 복구해 주세요.",
"exportPng": "PNG 다운로드",
"fullscreen": "전체 화면 열기 / 전체 화면 닫기",
"hideAnnotations": "설명 말풍선 숨기기",
"instructions": "Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.",
"orbit": "차트 조작 · 3D ⟳",
"pan": "차트 조작 · 3D ↔",
"projection": "차트 조작 · 3D ◇",
"reset": "보기 초기화",
"showAnnotations": "설명 말풍선 표시",
"toolbar": "차트 조작",
"unavailable": "이 환경에서는 WebGL을 사용할 수 없어 3D 차트를 표시할 수 없습니다.",
"zoomIn": "확대",
"zoomOut": "축소"
},
"orbit": true,
"pan": true,
"picking": true,
"tooltip": {
"fields": [
"kind",
"longitude",
"latitude",
"label",
"value",
"size",
"fromLongitude",
"fromLatitude",
"toLongitude",
"toLatitude"
],
"title": "Map · Natural Earth land and borders on a sphere with optional points and routes."
},
"wheel": "modifier",
"zoom": true
},
"landColor": "#79a78d",
"lighting": {
"ambient": 0.48,
"diffuse": 0.86,
"direction": [
-0.45,
0.82,
0.62
]
},
"oceanColor": "#0b2a4a",
"pointColor": "#fb7185",
"routeColor": "#fbbf24",
"theme": "graflume-light",
"title": "Map · Natural Earth land and borders on a sphere with optional points and routes."
}ISO alpha-2 또는 소스 별칭으로 국가 하나를 선택하고, 1:10m 경계를 화면에 맞춰 상세하게 표시합니다.
상태불러오는 중
country-focus행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
countryCodeordinal | namenominal | valuequantitative |
|---|---|---|
| KR | South Korea | 92 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "KR",
"name": "South Korea",
"value": 92
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 한 국가 상세 보기 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 한 국가 상세 보기",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "countryCode",
"featureKey": "countryCode"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "high",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "country",
"property": "countryCode",
"unmatched": "error",
"values": [
"KR"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "ISO alpha-2 또는 소스 별칭으로 국가 하나를 선택하고, 1:10m 경계를 화면에 맞춰 상세하게 표시합니다.",
"text": "Map · 한 국가 상세 보기"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 한 국가 상세 보기 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 한 국가 상세 보기",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "countryCode",
"featureKey": "countryCode"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "high",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "country",
"property": "countryCode",
"unmatched": "error",
"values": [
"KR"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "ISO alpha-2 또는 소스 별칭으로 국가 하나를 선택하고, 1:10m 경계를 화면에 맞춰 상세하게 표시합니다.",
"text": "Map · 한 국가 상세 보기"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}서로 떨어진 국가를 두 개 이상, 최대 50,000개 선택값 범위에서 함께 선택하고 선택 범위 전체를 자동 맞춤합니다.
상태불러오는 중
multi-country행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
countryCodeordinal | namenominal | valuequantitative |
|---|---|---|
| KR | South Korea | 92 |
| JP | Japan | 86 |
| US | United States | 81 |
| CA | Canada | 74 |
| BR | Brazil | 77 |
| ZA | South Africa | 69 |
| FR | France | 83 |
| AU | Australia | 79 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "KR",
"name": "South Korea",
"value": 92
},
{
"countryCode": "JP",
"name": "Japan",
"value": 86
},
{
"countryCode": "US",
"name": "United States",
"value": 81
},
{
"countryCode": "CA",
"name": "Canada",
"value": 74
},
{
"countryCode": "BR",
"name": "Brazil",
"value": 77
},
{
"countryCode": "ZA",
"name": "South Africa",
"value": 69
},
{
"countryCode": "FR",
"name": "France",
"value": 83
},
{
"countryCode": "AU",
"name": "Australia",
"value": 79
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 여러 국가 함께 보기 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 여러 국가 함께 보기",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "countryCode",
"featureKey": "countryCode"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "country",
"property": "countryCode",
"unmatched": "error",
"values": [
"KR",
"JP",
"US",
"CA",
"BR",
"ZA",
"FR",
"AU"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "서로 떨어진 국가를 두 개 이상, 최대 50,000개 선택값 범위에서 함께 선택하고 선택 범위 전체를 자동 맞춤합니다.",
"text": "Map · 여러 국가 함께 보기"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 여러 국가 함께 보기 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 여러 국가 함께 보기",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "countryCode",
"featureKey": "countryCode"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "country",
"property": "countryCode",
"unmatched": "error",
"values": [
"KR",
"JP",
"US",
"CA",
"BR",
"ZA",
"FR",
"AU"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "서로 떨어진 국가를 두 개 이상, 최대 50,000개 선택값 범위에서 함께 선택하고 선택 범위 전체를 자동 맞춤합니다.",
"text": "Map · 여러 국가 함께 보기"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}국가를 먼저 고른 뒤 해당 국가의 Natural Earth Admin-1 주요 행정구역을 검색하고, 지역 코드와 통계값을 정확히 결합합니다.
상태불러오는 중
principal-region행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
regionCodeordinal | countryCodeordinal | namenominal | valuequantitative |
|---|---|---|---|
| KR-11 | KR | Seoul | 96 |
| KR-26 | KR | Busan | 82 |
| KR-27 | KR | Daegu | 71 |
| KR-28 | KR | Incheon | 78 |
| KR-29 | KR | Gwangju | 66 |
| KR-30 | KR | Daejeon | 74 |
| KR-31 | KR | Ulsan | 68 |
| KR-41 | KR | Gyeonggi | 89 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "KR",
"name": "Seoul",
"regionCode": "KR-11",
"value": 96
},
{
"countryCode": "KR",
"name": "Busan",
"regionCode": "KR-26",
"value": 82
},
{
"countryCode": "KR",
"name": "Daegu",
"regionCode": "KR-27",
"value": 71
},
{
"countryCode": "KR",
"name": "Incheon",
"regionCode": "KR-28",
"value": 78
},
{
"countryCode": "KR",
"name": "Gwangju",
"regionCode": "KR-29",
"value": 66
},
{
"countryCode": "KR",
"name": "Daejeon",
"regionCode": "KR-30",
"value": 74
},
{
"countryCode": "KR",
"name": "Ulsan",
"regionCode": "KR-31",
"value": 68
},
{
"countryCode": "KR",
"name": "Gyeonggi",
"regionCode": "KR-41",
"value": 89
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 한 국가의 주요 행정구역 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 한 국가의 주요 행정구역",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "high",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "region",
"parentProperty": "countryCode",
"parentValues": [
"KR"
],
"property": "$id",
"unmatched": "error",
"values": [
"KR-11",
"KR-26",
"KR-27",
"KR-28",
"KR-29",
"KR-30",
"KR-31",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "국가를 먼저 고른 뒤 해당 국가의 Natural Earth Admin-1 주요 행정구역을 검색하고, 지역 코드와 통계값을 정확히 결합합니다.",
"text": "Map · 한 국가의 주요 행정구역"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 한 국가의 주요 행정구역 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 한 국가의 주요 행정구역",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "high",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "region",
"parentProperty": "countryCode",
"parentValues": [
"KR"
],
"property": "$id",
"unmatched": "error",
"values": [
"KR-11",
"KR-26",
"KR-27",
"KR-28",
"KR-29",
"KR-30",
"KR-31",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "국가를 먼저 고른 뒤 해당 국가의 Natural Earth Admin-1 주요 행정구역을 검색하고, 지역 코드와 통계값을 정확히 결합합니다.",
"text": "Map · 한 국가의 주요 행정구역"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}같은 국가 또는 여러 국가에서 두 개 이상의 지역을 선택해 하나의 지도 범위와 색상척도에서 비교합니다.
상태불러오는 중
multi-region행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
regionCodeordinal | countryCodeordinal | namenominal | valuequantitative |
|---|---|---|---|
| KR-11 | KR | Seoul | 96 |
| KR-26 | KR | Busan | 82 |
| KR-27 | KR | Daegu | 71 |
| KR-28 | KR | Incheon | 78 |
| KR-29 | KR | Gwangju | 66 |
| KR-30 | KR | Daejeon | 74 |
| KR-31 | KR | Ulsan | 68 |
| KR-41 | KR | Gyeonggi | 89 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "KR",
"name": "Seoul",
"regionCode": "KR-11",
"value": 96
},
{
"countryCode": "KR",
"name": "Busan",
"regionCode": "KR-26",
"value": 82
},
{
"countryCode": "KR",
"name": "Daegu",
"regionCode": "KR-27",
"value": 71
},
{
"countryCode": "KR",
"name": "Incheon",
"regionCode": "KR-28",
"value": 78
},
{
"countryCode": "KR",
"name": "Gwangju",
"regionCode": "KR-29",
"value": 66
},
{
"countryCode": "KR",
"name": "Daejeon",
"regionCode": "KR-30",
"value": 74
},
{
"countryCode": "KR",
"name": "Ulsan",
"regionCode": "KR-31",
"value": 68
},
{
"countryCode": "KR",
"name": "Gyeonggi",
"regionCode": "KR-41",
"value": 89
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 여러 지역 함께 보기 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 여러 지역 함께 보기",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "region",
"parentProperty": "countryCode",
"parentValues": [
"KR"
],
"property": "$id",
"unmatched": "error",
"values": [
"KR-11",
"KR-26",
"KR-28",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "같은 국가 또는 여러 국가에서 두 개 이상의 지역을 선택해 하나의 지도 범위와 색상척도에서 비교합니다.",
"text": "Map · 여러 지역 함께 보기"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 여러 지역 함께 보기 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 여러 지역 함께 보기",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "region",
"parentProperty": "countryCode",
"parentValues": [
"KR"
],
"property": "$id",
"unmatched": "error",
"values": [
"KR-11",
"KR-26",
"KR-28",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "같은 국가 또는 여러 국가에서 두 개 이상의 지역을 선택해 하나의 지도 범위와 색상척도에서 비교합니다.",
"text": "Map · 여러 지역 함께 보기"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}완전한 국가 경계와 선택한 세부 지역 경계를 한 컬렉션으로 결합해 국가·지역 수준을 함께 비교합니다.
상태불러오는 중
mixed-selection행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
regionCodeordinal | countryCodeordinal | namenominal | valuequantitative |
|---|---|---|---|
| JP | JP | Japan | 86 |
| AU | AU | Australia | 79 |
| KR-11 | KR | Seoul | 96 |
| KR-26 | KR | Busan | 82 |
| KR-41 | KR | Gyeonggi | 89 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "JP",
"name": "Japan",
"regionCode": "JP",
"value": 86
},
{
"countryCode": "AU",
"name": "Australia",
"regionCode": "AU",
"value": 79
},
{
"countryCode": "KR",
"name": "Seoul",
"regionCode": "KR-11",
"value": 96
},
{
"countryCode": "KR",
"name": "Busan",
"regionCode": "KR-26",
"value": 82
},
{
"countryCode": "KR",
"name": "Gyeonggi",
"regionCode": "KR-41",
"value": 89
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 국가·지역 혼합 선택 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 국가·지역 혼합 선택",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "feature",
"property": "$id",
"unmatched": "error",
"values": [
"JP",
"AU",
"KR-11",
"KR-26",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "완전한 국가 경계와 선택한 세부 지역 경계를 한 컬렉션으로 결합해 국가·지역 수준을 함께 비교합니다.",
"text": "Map · 국가·지역 혼합 선택"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 국가·지역 혼합 선택 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 국가·지역 혼합 선택",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "feature",
"property": "$id",
"unmatched": "error",
"values": [
"JP",
"AU",
"KR-11",
"KR-26",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "완전한 국가 경계와 선택한 세부 지역 경계를 한 컬렉션으로 결합해 국가·지역 수준을 함께 비교합니다.",
"text": "Map · 국가·지역 혼합 선택"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}고정된 Natural Earth 소스 리비전에서 ISO 3166-1 249개 엔터티, XK, 소스 추가 엔터티와 모든 Admin-1 원본 피처를 색인한 범위를 확인합니다.
상태불러오는 중
world-catalog행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
countryCodeordinal | namenominal | valuequantitative |
|---|---|---|
| KR | South Korea | 92 |
| JP | Japan | 86 |
| US | United States | 81 |
| CA | Canada | 74 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "KR",
"name": "South Korea",
"value": 92
},
{
"countryCode": "JP",
"name": "Japan",
"value": 86
},
{
"countryCode": "US",
"name": "United States",
"value": 81
},
{
"countryCode": "CA",
"name": "Canada",
"value": 74
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 세계 상세 카탈로그와 출처 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 세계 상세 카탈로그와 출처",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "countryCode",
"featureKey": "countryCode"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"mapScope": {
"empty": "error",
"level": "country",
"property": "countryCode",
"unmatched": "error",
"values": [
"KR",
"JP",
"US",
"BR"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "고정된 Natural Earth 소스 리비전에서 ISO 3166-1 249개 엔터티, XK, 소스 추가 엔터티와 모든 Admin-1 원본 피처를 색인한 범위를 확인합니다.",
"text": "Map · 세계 상세 카탈로그와 출처"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 세계 상세 카탈로그와 출처 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 세계 상세 카탈로그와 출처",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "countryCode",
"featureKey": "countryCode"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"mapScope": {
"empty": "error",
"level": "country",
"property": "countryCode",
"unmatched": "error",
"values": [
"KR",
"JP",
"US",
"BR"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "고정된 Natural Earth 소스 리비전에서 ISO 3166-1 249개 엔터티, XK, 소스 추가 엔터티와 모든 Admin-1 원본 피처를 색인한 범위를 확인합니다.",
"text": "Map · 세계 상세 카탈로그와 출처"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}선택 범위에 맞춰 중심과 배율을 계산하고, 화면·기하 예산에 따라 상세도를 조절하며 라벨 충돌을 자동으로 숨깁니다.
상태불러오는 중
fit-detail-labels행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
regionCodeordinal | countryCodeordinal | namenominal | valuequantitative |
|---|---|---|---|
| KR-11 | KR | Seoul | 96 |
| KR-26 | KR | Busan | 82 |
| KR-27 | KR | Daegu | 71 |
| KR-28 | KR | Incheon | 78 |
Map · boundary scope
국가와 그 국가의 주요 행정구역을 검색해 여러 개 선택하고, 필요한 경계 조각만 지연 로딩해 한 지도에 적용합니다.
natural-earth-admin-0-admin-1-10m · 1:10m
경계 표시 원칙 Natural Earth의 de facto 경계 정책을 따르는 통계용 참고 지도이며, 법적 권위나 모든 정치적 주장에 대한 합의를 뜻하지 않습니다.
브라우저 API
const data = [
{
"countryCode": "KR",
"name": "Seoul",
"regionCode": "KR-11",
"value": 96
},
{
"countryCode": "KR",
"name": "Busan",
"regionCode": "KR-26",
"value": 82
},
{
"countryCode": "KR",
"name": "Daegu",
"regionCode": "KR-27",
"value": 71
},
{
"countryCode": "KR",
"name": "Incheon",
"regionCode": "KR-28",
"value": 78
}
];
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 자동 맞춤·상세도·라벨 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 자동 맞춤·상세도·라벨",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "region",
"parentProperty": "countryCode",
"parentValues": [
"KR"
],
"property": "$id",
"unmatched": "error",
"values": [
"KR-11",
"KR-26",
"KR-28",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "선택 범위에 맞춰 중심과 배율을 계산하고, 화면·기하 예산에 따라 상세도를 조절하며 라벨 충돌을 자동으로 숨깁니다.",
"text": "Map · 자동 맞춤·상세도·라벨"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 자동 맞춤·상세도·라벨 example"
},
"axes": {
"x": false,
"y": false
},
"basemap": "natural-earth",
"graticule": false,
"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": "regionCode",
"format": "auto",
"label": "RegionCode"
},
{
"field": "countryCode",
"format": "auto",
"label": "CountryCode"
},
{
"field": "name",
"format": "auto",
"label": "이름"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 자동 맞춤·상세도·라벨",
"trigger": "mark"
}
},
"locale": "ko",
"mark": {
"fields": {
"color": "value",
"dataKey": "regionCode",
"featureKey": "$id"
},
"options": {
"basemap": "natural-earth",
"fit": true,
"fitPadding": 28,
"geometryBudget": 240000,
"geometryDetail": "auto",
"graticule": false,
"joinDuplicate": "error",
"joinUnmatched": "show",
"labels": {
"collision": "hide",
"field": "name",
"fontSize": 10,
"latitudeField": "labelLatitude",
"longitudeField": "labelLongitude",
"maximum": 120,
"padding": 3
},
"mapScope": {
"empty": "error",
"level": "region",
"parentProperty": "countryCode",
"parentValues": [
"KR"
],
"property": "$id",
"unmatched": "error",
"values": [
"KR-11",
"KR-26",
"KR-28",
"KR-41"
]
},
"maximumFeatures": 50000
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "선택 범위에 맞춰 중심과 배율을 계산하고, 화면·기하 예산에 따라 상세도를 조절하며 라벨 충돌을 자동으로 숨깁니다.",
"text": "Map · 자동 맞춤·상세도·라벨"
},
"width": "container",
"x": {
"field": "countryCode",
"title": "countryCode",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "value",
"type": "quantitative"
}
}극단 사례
성공할 수 있는 유효 데이터 안에서 수치 범위, 희소 구조와 대용량 입력을 검증합니다. 각 탭은 필요할 때만 데이터를 만들며 잘못된 값은 조용히 보정하지 않습니다.
0과 매우 작은 유한값부터 매우 큰 유한값까지 함께 넣어 자동 도메인, 정밀도와 기하가 무너지지 않는지 확인합니다. NaN과 Infinity는 의도적으로 거부됩니다. 유한값과 축 도메인을 보존하는 데이터 무결성 규칙 2개를 적용합니다.
상태불러오는 중
extreme-rangeextreme-smallextreme-largezeromixed-signbudget:marks<=6불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | -1e+12 |
| 139.69 | 35.68 | -1e-09 |
| 103.82 | 1.35 | 0 |
| 77.21 | 28.61 | 1e+12 |
| 2.35 | 48.86 | 1e-09 |
| -74 | 40.71 | 1e+06 |
브라우저 API
const data = [
{
"latitude": 37.57,
"longitude": 126.98,
"value": -1000000000000
},
{
"latitude": 35.68,
"longitude": 139.69,
"value": -1e-9
},
{
"latitude": 1.35,
"longitude": 103.82,
"value": 0
},
{
"latitude": 28.61,
"longitude": 77.21,
"value": 1000000000000
},
{
"latitude": 48.86,
"longitude": 2.35,
"value": 1e-9
},
{
"latitude": 40.71,
"longitude": -74,
"value": 1000000
}
];
const options = {
"accessibility": {
"description": "Regional adoption and routes connecting Statground teams around the world. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Map"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"title": {
"subtitle": "edge case · range",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "Regional adoption and routes connecting Statground teams around the world. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Map"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"title": {
"subtitle": "edge case · range",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}중복, 결측, 희소성, 순서 뒤바뀜 중 이 계열에서 의미가 정의된 구조만 실행합니다. 잘못된 참조나 깨진 튜플을 성공 예제로 위장하지 않습니다. 결측·중복·순서의 의미를 보존하는 구조 규칙 3개를 적용합니다.
상태불러오는 중
irregular-structureduplicate-keynullantimeridianpolar-coordinatebudget:marks<=7불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | — |
| 126.98 | 37.57 | 92 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
브라우저 API
const data = [
{
"latitude": 37.57,
"longitude": 126.98,
"value": 92
},
{
"latitude": 35.68,
"longitude": 139.69,
"value": null
},
{
"latitude": 37.57,
"longitude": 126.98,
"value": 92
},
{
"latitude": 1.35,
"longitude": 103.82,
"value": 64
},
{
"latitude": 28.61,
"longitude": 77.21,
"value": 58
},
{
"latitude": 48.86,
"longitude": 2.35,
"value": 73
},
{
"latitude": 40.71,
"longitude": -74,
"value": 88
}
];
const options = {
"accessibility": {
"description": "Regional adoption and routes connecting Statground teams around the world. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Map · 희소·불규칙 구조"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"title": {
"subtitle": "edge case · structure",
"text": "Map · 희소·불규칙 구조"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "Regional adoption and routes connecting Statground teams around the world. The example uses curated, deterministic data and exposes its exact values in a semantic table.",
"label": "Map · 희소·불규칙 구조"
},
"axes": {
"x": false,
"y": false
},
"height": 620,
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"title": {
"subtitle": "edge case · structure",
"text": "Map · 희소·불규칙 구조"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}결정적인 압축 레시피를 탭을 열 때만 생성합니다. Graflume의 성능 프로필이 입력량에 맞춰 표식 수, 적중 검사와 애니메이션 비용을 제한합니다. 결정적 생성과 출력 제한을 보장하는 대용량 규칙 6개를 적용합니다. 이 계열은 논리 입력 60,000 행를 생성하고 점 표식 출력을 최대 20,000개로 제한합니다.
상태불러오는 중
high-row-cardinalityall-input-rows-generatedall-input-rows-processeddeterministic-generationbounded-renderinginput:60000zoom-pan-resetbudget:point-marks<=20000legend · explicit · 1 channelshighlights[] · datum · longitudeannotations[] · datum · longitude · callout · placement:auto불러오는 중
브라우저 API
const recipe = {
"cardinality": {
"axes": {},
"sourceRows": 60000,
"unit": "rows"
},
"expectedInvariants": [
"finite-json",
"longitude-closed-minus180-180",
"latitude-closed-minus90-90"
],
"id": "geo-events",
"initialView": {
"kind": "viewport",
"xDomain": [
-180,
180
],
"yDomain": [
-70,
80
],
"zoom": 1
},
"outputBudget": {
"maximum": 20000,
"resource": "point-marks"
},
"parameters": {
"family": "map",
"geometry": "projected-points",
"nullableFields": [
"value"
],
"positiveFields": [],
"scenario": "volume",
"valueFields": [
"value"
],
"valuePolicy": "signed"
},
"preview": {
"maximumRows": 12,
"method": "spatial-slice"
},
"reduction": {
"method": "geohash-stratified-sample",
"stage": "sample"
},
"seed": 2716439227,
"shape": "rows",
"version": 2
};
const { data, previewRows, plan } = Graflume.materializeDemoRecipe(recipe);
const options = {
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 대용량 데이터"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "데이터, 축 범위 또는 화면 위치에 사용자가 작성한 안전한 텍스트 설명을 연결합니다.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "longitude",
"type": "datum",
"value": -43.81583
},
"text": "포인트·범위 하이라이트 · -43.81583"
}
],
"axes": {
"x": false,
"y": false
},
"create": {
"adaptive": {
"environment": {
"rowCount": 60000
},
"largeDataNavigation": true,
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "longitude",
"type": "datum",
"value": -43.81583
}
}
],
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 대용량 데이터",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Activity · size"
}
],
"labels": {
"hide": "숨기기",
"show": "표시"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Map · 대용량 데이터",
"visible": true
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"performance": "auto",
"theme": "graflume-light",
"title": {
"subtitle": "Regional adoption and routes connecting Statground teams around the world · 60,000 logical rows, screen-aware detail",
"text": "Map · 대용량 데이터"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.",
"label": "Map · 대용량 데이터"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "데이터, 축 범위 또는 화면 위치에 사용자가 작성한 안전한 텍스트 설명을 연결합니다.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "longitude",
"type": "datum",
"value": -43.81583
},
"text": "포인트·범위 하이라이트 · -43.81583"
}
],
"axes": {
"x": false,
"y": false
},
"create": {
"adaptive": {
"environment": {
"rowCount": 60000
},
"largeDataNavigation": true,
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "longitude",
"type": "datum",
"value": -43.81583
}
}
],
"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": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map · 대용량 데이터",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Activity · size"
}
],
"labels": {
"hide": "숨기기",
"show": "표시"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Map · 대용량 데이터",
"visible": true
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"performance": "auto",
"theme": "graflume-light",
"title": {
"subtitle": "Regional adoption and routes connecting Statground teams around the world · 60,000 logical rows, screen-aware detail",
"text": "Map · 대용량 데이터"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
}극단 환경
기기 이름을 추측하지 않고 컨테이너 크기, 입력 방식, 표시 능력과 사용자 선호를 조합합니다. 모바일·워치·전자종이·흑백·도트 화면과 표준 기반 극단 환경을 같은 차트에서 비교하세요.
컨테이너 폭과 높이에 따라 축, 범례, 설명과 조작부를 자동 재배치합니다.
960×540 · adaptive.profiles=responsive-fluidzoom-reflowshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial세로형 작은 화면에서 44px 터치 대상, 탭 도구 설명과 접힌 보조 정보를 우선합니다.
390×844 · adaptive.profiles=mobile-touchzoom-reflowcoarse-touchvirtual-keyboardshape-rectangledisplay-colorinput-coarsemotion-fullrenderer-canvas-spatial원형 또는 매우 작은 화면에서는 핵심 표식과 값, 단계형 조작만 남기고 나머지는 아래 설명으로 재배치합니다.
184×224 · adaptive.profiles=smartwatchzoom-reflowreduced-effectscoarse-touchlow-resourcecutout-roundshape-rounddisplay-colorinput-coarsemotion-reducedrenderer-canvas-spatialviewport-tiny낮은 갱신률과 잔상 가능성을 고려해 정적 상태, 높은 명암과 데이터 표를 우선합니다.
758×1024 · adaptive.profiles=ebook-paperprint-pagedreduced-effectslow-resourceshape-pageddisplay-e-inkinput-keyboardmotion-staticrenderer-canvas-spatial색만으로 계열을 구분하지 않고 선, 표식, 패턴, 라벨과 표를 함께 사용합니다.
640×400 · adaptive.profiles=monochromereduced-effectsshape-rectangledisplay-monochromeinput-finemotion-reducedrenderer-canvas-spatial낮은 해상도에서는 표식 수와 장식을 줄이고 굵은 선, 정수 라벨과 단계형 확대를 사용합니다.
320×240 · adaptive.profiles=dot-matrixzoom-reflowreduced-effectskeyboard-switchlow-resourceshape-rectangledisplay-gridinput-keyboardmotion-staticrenderer-canvas-spatialviewport-tiny320 CSS px 등가 폭에서 본문은 한 축으로 재배치하고 차트만 자체 확대·이동을 허용합니다.
320×480 · adaptive.profiles=zoom-reflowzoom-reflowshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial힌지와 화면 분할 영역을 가로지르지 않도록 차트와 설명을 독립 세그먼트로 재배치합니다.
720×640 · adaptive.profiles=foldable-dualfoldable-dualshape-dualdisplay-colorinput-finemotion-fullrenderer-canvas-spatial호버가 없는 원거리 화면에서 큰 초점 표시와 방향키, Enter, Escape 조작을 제공합니다.
1920×1080 · adaptive.profiles=tv-remotetv-remoteshape-rectangledisplay-colorinput-remotemotion-fullrenderer-canvas-spatial조작부 대신 정적 차트, 설명과 표를 함께 배치하고 페이지 중간 분할을 피합니다.
794×1123 · adaptive.profiles=print-pagedprint-pagedshape-pageddisplay-colorinput-finemotion-staticrenderer-canvas-spatial시스템 색과 테두리를 존중하고 패턴, 표식과 텍스트를 중복 단서로 유지합니다.
640×400 · adaptive.profiles=forced-colorsforced-colorsshape-rectangledisplay-high-contrastinput-finemotion-fullrenderer-canvas-spatial전환을 즉시 끝내고 불투명 배경과 지연 로드를 사용해 움직임과 투명도 부담을 줄입니다.
640×400 · adaptive.profiles=reduced-effectsreduced-effectsshape-rectangledisplay-colorinput-finemotion-reducedrenderer-canvas-spatial호버 없이 탭으로 값을 확인하고 실제 조작 대상은 44px 이상, 확대·축소는 명시 버튼으로 제공합니다.
390×844 · adaptive.profiles=coarse-touchcoarse-touchshape-rectangledisplay-colorinput-coarsemotion-fullrenderer-canvas-spatial드래그 전용 기능 없이 Tab, 방향키, Enter, Space, Escape로 모든 조작에 도달합니다.
640×400 · adaptive.profiles=keyboard-switchkeyboard-switchshape-rectangledisplay-colorinput-keyboardmotion-fullrenderer-canvas-spatial적은 메모리와 느린 연결에서는 점진 렌더링, 샘플링, 취소 가능한 작업과 정적 대체를 우선합니다.
640×400 · adaptive.profiles=low-resourcelow-resourceshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial본문과 탭은 RTL 논리 방향을 따르되 축, 코드와 데이터 식별자는 기술적 LTR 순서를 유지합니다.
640×400 · adaptive.profiles=rtlrtlshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial세로쓰기 설명은 재배치하되 차트와 기술 표면은 독립적인 가로 패널로 유지합니다.
640×400 · adaptive.profiles=vertical-writingvertical-writingshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial차트를 무한히 늘이지 않고 읽기 가능한 최대 폭, 패널 분할과 큰 라벨을 사용합니다.
1920×720 · adaptive.profiles=ultrawide-projectionultrawide-projectionshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial짧고 긴 설명, 의미 있는 표와 상태를 제공해 Canvas나 색을 정보의 유일한 경로로 만들지 않습니다.
640×400 · adaptive.profiles=screenreader-braillescreenreader-brailleshape-nonvisualdisplay-colorinput-nonvisualmotion-fullrenderer-canvas-spatial스크립트가 꺼져도 검증된 정적 미리보기, 설명과 접힌 행 데이터 표가 핵심 정보를 보존합니다.
640×400 · adaptive.profiles=no-scriptno-scriptshape-nonvisualdisplay-colorinput-finemotion-staticrenderer-static-fallbackXR 전용 API가 없어도 일반 2D 또는 WebGL 패널로 안전하게 돌아가며 깊이 단서를 텍스트와 표로 중복합니다.
640×400 · adaptive.profiles=spatial-xrspatial-xrshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatialsafe-area와 원형 경계를 피해 제목, 표식, 조작부가 잘리지 않게 안쪽으로 재배치합니다.
184×224 · adaptive.profiles=cutout-roundcutout-roundshape-rounddisplay-colorinput-finemotion-fullrenderer-canvas-spatialviewport-tiny가상 키보드가 화면을 줄여도 초점 조작, 차트와 현재 설명이 가려지지 않게 다시 배치합니다.
390×560 · adaptive.profiles=virtual-keyboardvirtual-keyboardshape-rectangledisplay-colorinput-finemotion-fullrenderer-canvas-spatial위 프로필 탭을 선택하면 같은 데이터와 ChartSpec을 유지한 채 화면 크기, 입력 방식, 표시 능력과 사용자 선호에 맞춰 차트를 다시 구성합니다.
상태불러오는 중
adaptivecapability-drivenno-user-agent-branchinglegend · explicit · 1 channelshighlights[] · datum · longitudeannotations[] · datum · longitude · callout · placement:autoselection · multiple · toggle불러오는 중
행 데이터와 zero-copy TypedArray 열은 하나의 데이터 계약을 공유합니다.
longitudequantitative | latitudequantitative | valuequantitative |
|---|---|---|
| 126.98 | 37.57 | 92 |
| 139.69 | 35.68 | 78 |
| 103.82 | 1.35 | 64 |
| 77.21 | 28.61 | 58 |
| 2.35 | 48.86 | 73 |
| -74 | 40.71 | 88 |
| -122.42 | 37.77 | 69 |
| 151.21 | -33.87 | 51 |
브라우저 API
const data = [
{
"latitude": 37.57,
"latitude2": 35.68,
"longitude": 126.98,
"longitude2": 139.69,
"name": "Seoul",
"value": 92
},
{
"latitude": 35.68,
"latitude2": 1.35,
"longitude": 139.69,
"longitude2": 103.82,
"name": "Tokyo",
"value": 78
},
{
"latitude": 1.35,
"latitude2": 28.61,
"longitude": 103.82,
"longitude2": 77.21,
"name": "Singapore",
"value": 64
},
{
"latitude": 28.61,
"latitude2": 48.86,
"longitude": 77.21,
"longitude2": 2.35,
"name": "Delhi",
"value": 58
},
{
"latitude": 48.86,
"latitude2": 40.71,
"longitude": 2.35,
"longitude2": -74,
"name": "Paris",
"value": 73
},
{
"latitude": 40.71,
"latitude2": 37.77,
"longitude": -74,
"longitude2": -122.42,
"name": "New York",
"value": 88
},
{
"latitude": 37.77,
"latitude2": 19.43,
"longitude": -122.42,
"longitude2": -99.13,
"name": "San Francisco",
"value": 69
},
{
"latitude": -33.87,
"latitude2": 37.57,
"longitude": 151.21,
"longitude2": 126.98,
"name": "Sydney",
"value": 51
}
];
const options = {
"accessibility": {
"description": "내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.",
"label": "Map: Regional adoption and routes connecting Statground teams around the world"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "데이터, 축 범위 또는 화면 위치에 사용자가 작성한 안전한 텍스트 설명을 연결합니다.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
},
"text": "포인트·범위 하이라이트 · 2.35"
}
],
"axes": {
"x": false,
"y": false
},
"create": {
"adaptive": {
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
}
}
],
"interaction": {
"controls": {
"annotations": true,
"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"
},
"selection": {
"ariaLabel": "대화형 선택",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "longitude",
"mode": "multiple",
"toggle": true
},
"tooltip": {
"fields": [
{
"field": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Activity · size"
}
],
"labels": {
"hide": "숨기기",
"show": "표시"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Map",
"visible": true
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Regional adoption and routes connecting Statground teams around the world",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"type": "quantitative"
}
};
Graflume.map('#chart', data, options);이식 가능한 스키마
{
"accessibility": {
"description": "내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.",
"label": "Map: Regional adoption and routes connecting Statground teams around the world"
},
"annotations": [
{
"connector": {
"visible": true
},
"detail": "데이터, 축 범위 또는 화면 위치에 사용자가 작성한 안전한 텍스트 설명을 연결합니다.",
"id": "manual-callout",
"placement": "auto",
"style": {
"maxWidth": 220,
"padding": 8
},
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
},
"text": "포인트·범위 하이라이트 · 2.35"
}
],
"axes": {
"x": false,
"y": false
},
"create": {
"adaptive": {
"profiles": "auto"
}
},
"height": 620,
"highlights": [
{
"id": "manual-focus",
"padding": 7,
"target": {
"field": "longitude",
"type": "datum",
"value": 2.35
}
}
],
"interaction": {
"controls": {
"annotations": true,
"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"
},
"selection": {
"ariaLabel": "대화형 선택",
"clearOnBackground": true,
"clearOnEscape": true,
"highlight": {
"padding": 5
},
"key": "longitude",
"mode": "multiple",
"toggle": true
},
"tooltip": {
"fields": [
{
"field": "longitude",
"format": "number",
"label": "경도"
},
{
"field": "latitude",
"format": "number",
"label": "위도"
},
{
"field": "value",
"format": "number",
"label": "값"
}
],
"title": "Map",
"trigger": "mark"
}
},
"legend": {
"interactive": false,
"items": [
{
"id": "semantic-0",
"label": "Activity · size"
}
],
"labels": {
"hide": "숨기기",
"show": "표시"
},
"maxItems": 8,
"mode": "layers",
"orientation": "horizontal",
"position": "bottom",
"title": "Map",
"visible": true
},
"locale": "ko",
"mark": {
"fields": {
"size": "value"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Regional adoption and routes connecting Statground teams around the world",
"text": "Map"
},
"width": "container",
"x": {
"field": "longitude",
"title": "Longitude",
"type": "quantitative"
},
"y": {
"field": "latitude",
"title": "Latitude",
"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.
9 modes · 7 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
geo | Geographic region chart | geo() | region | geo | canvas |
map | Map | map() | default | map | canvas |
flow-map | Flow map | flowMap() | flow-map | geo-flow | canvas |
geo-heatmap | Geographic heatmap | geoHeatmap() | geo-heatmap | geo-heatmap | canvas |
map-bubble | Map bubble chart | mapBubble() | map-bubble | map | canvas |
map-line | Map line chart | mapLine() | map-line | geo-line | canvas |
map-point | Map point chart | mapPoint() | map-point | map | canvas |
tiled-map deprecated → map | Tiled map | tiledMap() | tiled-map | tiled-map | canvas |
globe | Natural Earth land and borders on a sphere with optional points and routes. | globe() | globe | globe | webgl |
| Identifier | Canonical mode ID |
|---|---|
flowmap | flow-map |
geoheatmap | geo-heatmap |
map | map |
mapbubble | map-bubble |
mapline | map-line |
mappoint | map-point |
tiledwebmap | tiled-map |
매뉴얼
ARIA · table fallbackCanvas ARIA 메타데이터에 텍스트 요약과 표 대체 표현을 함께 제공합니다.
standard · large · ultrastandard·large·ultra 프로필은 렌더링 작업량을 제한합니다.