Graflume · Alpha

Map

내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.

차트 계열 · 기본 차트 계열

Map

내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.

Quick API
map()
브라우저 스냅샷
graflume
mark
map
프리셋
9

기본 구현

가장 단순한 차트

필수 데이터와 차트 고유 인코딩만 사용한 출발점입니다. 아래 코드를 펼치면 그대로 실행할 수 있습니다.

기본 예제

내장 Natural Earth 1:110m 국가 경계 위에서 다섯 세계 도시의 활동을 비교하며, 외부 tile/API 요청은 발생하지 않습니다.

상태불러오는 중

  • minimal-implementation
Graflume.map() Canvas 2D
조작 도움말

확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.

Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.

자동 배치는 둘레 후보를 비교해 차트·범례·다른 말풍선과의 겹침을 가능한 한 피합니다. 명시한 위치는 필요한 안전 보정만 적용해 유지합니다. 말풍선 글자는 상자 안에서 안전하게 자동 줄바꿈됩니다. 끊어지지 않는 긴 토큰은 정해진 줄 수 안에서 시각적으로 축약하지만, 보조 기술에는 원문 전체를 유지합니다.

불러오는 중

브라우저 API · 이식 가능한 스키마

브라우저 API

Graflume.map()

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);

이식 가능한 스키마

ChartSpec 0.1 · 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
Graflume.map() Canvas 2D
조작 도움말

확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.

Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.

자동 배치는 둘레 후보를 비교해 차트·범례·다른 말풍선과의 겹침을 가능한 한 피합니다. 명시한 위치는 필요한 안전 보정만 적용해 유지합니다. 말풍선 글자는 상자 안에서 안전하게 자동 줄바꿈됩니다. 끊어지지 않는 긴 토큰은 정해진 줄 수 안에서 시각적으로 축약하지만, 보조 기술에는 원문 전체를 유지합니다.

불러오는 중

브라우저 API · 이식 가능한 스키마

브라우저 API

Graflume.map()

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);

이식 가능한 스키마

ChartSpec 0.1 · 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"
  }
}

차트 고유 기능

이 차트만의 고유한 실행 기능

기존 Map 모드와 함께 한 국가, 여러 국가, 한 국가의 주요 행정구역, 여러 지역, 국가·지역 혼합 선택, 세계 상세 카탈로그와 자동 맞춤·상세도·라벨을 기능별 탭으로 실행합니다.

Geographic region chart

Geographic region chart 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: embedded Natural Earth basemap · general fit and clip policy.

상태불러오는 중

  • geo
  • embedded Natural Earth basemap
  • general fit and clip policy
Graflume.geo() Canvas 2D
조작 도움말

확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.

Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.

자동 배치는 둘레 후보를 비교해 차트·범례·다른 말풍선과의 겹침을 가능한 한 피합니다. 명시한 위치는 필요한 안전 보정만 적용해 유지합니다. 말풍선 글자는 상자 안에서 안전하게 자동 줄바꿈됩니다. 끊어지지 않는 긴 토큰은 정해진 줄 수 안에서 시각적으로 축약하지만, 보조 기술에는 원문 전체를 유지합니다.

불러오는 중

브라우저 API · 이식 가능한 스키마

브라우저 API

Graflume.geo()

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);

이식 가능한 스키마

ChartSpec 0.1 · 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"
  }
}

극단 사례

값의 범위·불규칙 구조·대용량 입력

성공할 수 있는 유효 데이터 안에서 수치 범위, 희소 구조와 대용량 입력을 검증합니다. 각 탭은 필요할 때만 데이터를 만들며 잘못된 값은 조용히 보정하지 않습니다.

큰 값·작은 값

0과 매우 작은 유한값부터 매우 큰 유한값까지 함께 넣어 자동 도메인, 정밀도와 기하가 무너지지 않는지 확인합니다. NaN과 Infinity는 의도적으로 거부됩니다. 유한값과 축 도메인을 보존하는 데이터 무결성 규칙 2개를 적용합니다.

상태불러오는 중

  • extreme-range
  • extreme-small
  • extreme-large
  • zero
  • mixed-sign
  • budget:marks<=6
Graflume.map() Canvas 2D
조작 도움말

확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.

Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.

자동 배치는 둘레 후보를 비교해 차트·범례·다른 말풍선과의 겹침을 가능한 한 피합니다. 명시한 위치는 필요한 안전 보정만 적용해 유지합니다. 말풍선 글자는 상자 안에서 안전하게 자동 줄바꿈됩니다. 끊어지지 않는 긴 토큰은 정해진 줄 수 안에서 시각적으로 축약하지만, 보조 기술에는 원문 전체를 유지합니다.

불러오는 중

브라우저 API · 이식 가능한 스키마

브라우저 API

Graflume.map()

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);

이식 가능한 스키마

ChartSpec 0.1 · 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"
  }
}

극단 환경

디바이스·입력·표시 능력에 맞춘 재구성

기기 이름을 추측하지 않고 컨테이너 크기, 입력 방식, 표시 능력과 사용자 선호를 조합합니다. 모바일·워치·전자종이·흑백·도트 화면과 표준 기반 극단 환경을 같은 차트에서 비교하세요.

반응형 화면

컨테이너 폭과 높이에 따라 축, 범례, 설명과 조작부를 자동 재배치합니다.

960×540 · adaptive.profiles=responsive-fluid
  • zoom-reflow
  • shape-rectangle
  • display-color
  • input-fine
  • motion-full
  • renderer-canvas-spatial

극단 환경 미리보기

위 프로필 탭을 선택하면 같은 데이터와 ChartSpec을 유지한 채 화면 크기, 입력 방식, 표시 능력과 사용자 선호에 맞춰 차트를 다시 구성합니다.

상태불러오는 중

  • adaptive
  • capability-driven
  • no-user-agent-branching
  • 범례: legend · explicit · 1 channels
  • 포인트·범위 하이라이트: highlights[] · datum · longitude
  • 설명 말풍선: annotations[] · datum · longitude · callout · placement:auto
  • 대화형 선택: selection · multiple · toggle
Graflume.map() Canvas 2D
조작 도움말

확대·이동은 화면을 살펴보기 위한 기능이며 데이터 축이나 값은 바꾸지 않습니다. 재생 조작이 보이는 차트에서는 원본 데이터에서 고유값이 처음 등장한 순서대로 실제 단계만 이동합니다.

Tab으로 조작부를 이동하고 Enter 또는 Space로 실행하세요. 차트에 초점이 있을 때 더하기·빼기 키로 확대·축소하고 화살표 키로 이동할 수 있습니다.

자동 배치는 둘레 후보를 비교해 차트·범례·다른 말풍선과의 겹침을 가능한 한 피합니다. 명시한 위치는 필요한 안전 보정만 적용해 유지합니다. 말풍선 글자는 상자 안에서 안전하게 자동 줄바꿈됩니다. 끊어지지 않는 긴 토큰은 정해진 줄 수 안에서 시각적으로 축약하지만, 보조 기술에는 원문 전체를 유지합니다.

불러오는 중

브라우저 API · 이식 가능한 스키마

브라우저 API

Graflume.map()

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);

이식 가능한 스키마

ChartSpec 0.1 · 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

Modes · compatibility identifiers

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

Map · supported modes · representative map
IDNameQuick APImodemarkrenderer
geoGeographic region chartgeo()regiongeocanvas
mapMapmap()defaultmapcanvas
flow-mapFlow mapflowMap()flow-mapgeo-flowcanvas
geo-heatmapGeographic heatmapgeoHeatmap()geo-heatmapgeo-heatmapcanvas
map-bubbleMap bubble chartmapBubble()map-bubblemapcanvas
map-lineMap line chartmapLine()map-linegeo-linecanvas
map-pointMap point chartmapPoint()map-pointmapcanvas
tiled-map deprecated → mapTiled maptiledMap()tiled-maptiled-mapcanvas
globeNatural Earth land and borders on a sphere with optional points and routes.globe()globeglobewebgl
Map · compatibility identifiers
IdentifierCanonical mode ID
flowmapflow-map
geoheatmapgeo-heatmap
mapmap
mapbubblemap-bubble
maplinemap-line
mappointmap-point
tiledwebmaptiled-map

매뉴얼

통합 체크리스트

ARIA · table fallback

접근성

Canvas ARIA 메타데이터에 텍스트 요약과 표 대체 표현을 함께 제공합니다.

standard · large · ultra

성능

standard·large·ultra 프로필은 렌더링 작업량을 제한합니다.