히트맵

행과 열에 색을 입혀 값이 모이거나 달라지는 패턴을 찾으세요.

히트맵

가장 단순한 차트

차트를 살펴보고, 표에서 원본 데이터를 확인하세요. 아래에서 같은 예제의 코드를 펼칠 수 있습니다.

기본 예제

불러오는 중

조작 도움말

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

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

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

불러오는 중

코드와 설정 보기

브라우저 API

Graflume.heatmap()

const data = [
  {
    "value": 19.342,
    "x": 0,
    "y": 0
  },
  {
    "value": 23.692,
    "x": 1,
    "y": 0
  },
  {
    "value": 30.375,
    "x": 2,
    "y": 0
  },
  {
    "value": 35.875,
    "x": 3,
    "y": 0
  },
  {
    "value": 35.843,
    "x": 4,
    "y": 0
  },
  {
    "value": 29.381,
    "x": 5,
    "y": 0
  },
  {
    "value": 19.872,
    "x": 6,
    "y": 0
  },
  {
    "value": 11.62,
    "x": 7,
    "y": 0
  },
  {
    "value": 6.6,
    "x": 8,
    "y": 0
  },
  {
    "value": 4.304,
    "x": 9,
    "y": 0
  },
  {
    "value": 3.445,
    "x": 10,
    "y": 0
  },
  {
    "value": 3.145,
    "x": 11,
    "y": 0
  },
  {
    "value": 26.5,
    "x": 0,
    "y": 1
  },
  {
    "value": 39.914,
    "x": 1,
    "y": 1
  },
  {
    "value": 53.905,
    "x": 2,
    "y": 1
  },
  {
    "value": 62.722,
    "x": 3,
    "y": 1
  },
  {
    "value": 60.939,
    "x": 4,
    "y": 1
  },
  {
    "value": 48.629,
    "x": 5,
    "y": 1
  },
  {
    "value": 32.011,
    "x": 6,
    "y": 1
  },
  {
    "value": 18.177,
    "x": 7,
    "y": 1
  },
  {
    "value": 10.033,
    "x": 8,
    "y": 1
  },
  {
    "value": 6.276,
    "x": 9,
    "y": 1
  },
  {
    "value": 4.575,
    "x": 10,
    "y": 1
  },
  {
    "value": 3.674,
    "x": 11,
    "y": 1
  },
  {
    "value": 23.721,
    "x": 0,
    "y": 2
  },
  {
    "value": 44.273,
    "x": 1,
    "y": 2
  },
  {
    "value": 68.463,
    "x": 2,
    "y": 2
  },
  {
    "value": 85.571,
    "x": 3,
    "y": 2
  },
  {
    "value": 85.778,
    "x": 4,
    "y": 2
  },
  {
    "value": 69.134,
    "x": 5,
    "y": 2
  },
  {
    "value": 45.848,
    "x": 6,
    "y": 2
  },
  {
    "value": 27.125,
    "x": 7,
    "y": 2
  },
  {
    "value": 16.847,
    "x": 8,
    "y": 2
  },
  {
    "value": 11.918,
    "x": 9,
    "y": 2
  },
  {
    "value": 8.491,
    "x": 10,
    "y": 2
  },
  {
    "value": 5.65,
    "x": 11,
    "y": 2
  },
  {
    "value": 20.436,
    "x": 0,
    "y": 3
  },
  {
    "value": 39.635,
    "x": 1,
    "y": 3
  },
  {
    "value": 64.15,
    "x": 2,
    "y": 3
  },
  {
    "value": 84.275,
    "x": 3,
    "y": 3
  },
  {
    "value": 89.407,
    "x": 4,
    "y": 3
  },
  {
    "value": 77.438,
    "x": 5,
    "y": 3
  },
  {
    "value": 57.334,
    "x": 6,
    "y": 3
  },
  {
    "value": 40.924,
    "x": 7,
    "y": 3
  },
  {
    "value": 32.23,
    "x": 8,
    "y": 3
  },
  {
    "value": 26.345,
    "x": 9,
    "y": 3
  },
  {
    "value": 18.692,
    "x": 10,
    "y": 3
  },
  {
    "value": 10.778,
    "x": 11,
    "y": 3
  },
  {
    "value": 16.946,
    "x": 0,
    "y": 4
  },
  {
    "value": 31.996,
    "x": 1,
    "y": 4
  },
  {
    "value": 50.804,
    "x": 2,
    "y": 4
  },
  {
    "value": 65.794,
    "x": 3,
    "y": 4
  },
  {
    "value": 69.629,
    "x": 4,
    "y": 4
  },
  {
    "value": 62.612,
    "x": 5,
    "y": 4
  },
  {
    "value": 53.611,
    "x": 6,
    "y": 4
  },
  {
    "value": 51.41,
    "x": 7,
    "y": 4
  },
  {
    "value": 54.19,
    "x": 8,
    "y": 4
  },
  {
    "value": 51.132,
    "x": 9,
    "y": 4
  },
  {
    "value": 37.392,
    "x": 10,
    "y": 4
  },
  {
    "value": 20.559,
    "x": 11,
    "y": 4
  },
  {
    "value": 12.113,
    "x": 0,
    "y": 5
  },
  {
    "value": 21.902,
    "x": 1,
    "y": 5
  },
  {
    "value": 34.001,
    "x": 2,
    "y": 5
  },
  {
    "value": 43.3,
    "x": 3,
    "y": 5
  },
  {
    "value": 45.061,
    "x": 4,
    "y": 5
  },
  {
    "value": 40.583,
    "x": 5,
    "y": 5
  },
  {
    "value": 38.468,
    "x": 6,
    "y": 5
  },
  {
    "value": 46.908,
    "x": 7,
    "y": 5
  },
  {
    "value": 61.621,
    "x": 8,
    "y": 5
  },
  {
    "value": 66.662,
    "x": 9,
    "y": 5
  },
  {
    "value": 53.82,
    "x": 10,
    "y": 5
  },
  {
    "value": 32.705,
    "x": 11,
    "y": 5
  },
  {
    "value": 7.715,
    "x": 0,
    "y": 6
  },
  {
    "value": 12.779,
    "x": 1,
    "y": 6
  },
  {
    "value": 19.035,
    "x": 2,
    "y": 6
  },
  {
    "value": 23.839,
    "x": 3,
    "y": 6
  },
  {
    "value": 24.834,
    "x": 4,
    "y": 6
  },
  {
    "value": 23.214,
    "x": 5,
    "y": 6
  },
  {
    "value": 24.759,
    "x": 6,
    "y": 6
  },
  {
    "value": 34.859,
    "x": 7,
    "y": 6
  },
  {
    "value": 49.474,
    "x": 8,
    "y": 6
  },
  {
    "value": 55.699,
    "x": 9,
    "y": 6
  },
  {
    "value": 47.461,
    "x": 10,
    "y": 6
  },
  {
    "value": 32.902,
    "x": 11,
    "y": 6
  },
  {
    "value": 4.928,
    "x": 0,
    "y": 7
  },
  {
    "value": 7,
    "x": 1,
    "y": 7
  },
  {
    "value": 9.559,
    "x": 2,
    "y": 7
  },
  {
    "value": 11.538,
    "x": 3,
    "y": 7
  },
  {
    "value": 12.049,
    "x": 4,
    "y": 7
  },
  {
    "value": 11.892,
    "x": 5,
    "y": 7
  },
  {
    "value": 14.112,
    "x": 6,
    "y": 7
  },
  {
    "value": 21.319,
    "x": 7,
    "y": 7
  },
  {
    "value": 30.492,
    "x": 8,
    "y": 7
  },
  {
    "value": 33.608,
    "x": 9,
    "y": 7
  },
  {
    "value": 27.669,
    "x": 10,
    "y": 7
  },
  {
    "value": 19.134,
    "x": 11,
    "y": 7
  }
];

const options = {
  "height": 620,
  "locale": "ko",
  "width": "container",
  "x": {
    "field": "x",
    "title": "Horizontal bin",
    "type": "quantitative"
  },
  "y": {
    "field": "y",
    "title": "Vertical bin",
    "type": "quantitative"
  }
};

Graflume.heatmap('#chart', data, options);

이식 가능한 스키마

ChartSpec 0.1 · options

{
  "height": 620,
  "locale": "ko",
  "width": "container",
  "x": {
    "field": "x",
    "title": "Horizontal bin",
    "type": "quantitative"
  },
  "y": {
    "field": "y",
    "title": "Vertical bin",
    "type": "quantitative"
  }
}
Quick API
heatmap()
브라우저 스냅샷
graflume/complete
mark
heatmap
프리셋
2
  • minimal-implementation

공통 기능

모든 차트에서 사용하는 기능

기능 탭을 선택해 헤더, 도구 설명, 테마, 범례, 강조, 말풍선, 선택, 화면 제어와 접근성을 하나씩 적용한 결과와 코드를 비교하세요. 데이터 표식 위에 마우스를 올리세요. 지원하는 차트에서는 축을 따라 커서를 움직이면 가장 가까운 값을 볼 수 있습니다. 모든 정확한 값은 아래 표에서 확인할 수 있습니다.

헤더

차트 안에 제목과 보조 설명을 넣어 무엇을 보여주는지 먼저 밝힙니다.

불러오는 중

조작 도움말

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

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

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

불러오는 중

코드와 설정 보기

브라우저 API

Graflume.heatmap()

const data = [
  {
    "value": 19.342,
    "x": 0,
    "y": 0
  },
  {
    "value": 23.692,
    "x": 1,
    "y": 0
  },
  {
    "value": 30.375,
    "x": 2,
    "y": 0
  },
  {
    "value": 35.875,
    "x": 3,
    "y": 0
  },
  {
    "value": 35.843,
    "x": 4,
    "y": 0
  },
  {
    "value": 29.381,
    "x": 5,
    "y": 0
  },
  {
    "value": 19.872,
    "x": 6,
    "y": 0
  },
  {
    "value": 11.62,
    "x": 7,
    "y": 0
  },
  {
    "value": 6.6,
    "x": 8,
    "y": 0
  },
  {
    "value": 4.304,
    "x": 9,
    "y": 0
  },
  {
    "value": 3.445,
    "x": 10,
    "y": 0
  },
  {
    "value": 3.145,
    "x": 11,
    "y": 0
  },
  {
    "value": 26.5,
    "x": 0,
    "y": 1
  },
  {
    "value": 39.914,
    "x": 1,
    "y": 1
  },
  {
    "value": 53.905,
    "x": 2,
    "y": 1
  },
  {
    "value": 62.722,
    "x": 3,
    "y": 1
  },
  {
    "value": 60.939,
    "x": 4,
    "y": 1
  },
  {
    "value": 48.629,
    "x": 5,
    "y": 1
  },
  {
    "value": 32.011,
    "x": 6,
    "y": 1
  },
  {
    "value": 18.177,
    "x": 7,
    "y": 1
  },
  {
    "value": 10.033,
    "x": 8,
    "y": 1
  },
  {
    "value": 6.276,
    "x": 9,
    "y": 1
  },
  {
    "value": 4.575,
    "x": 10,
    "y": 1
  },
  {
    "value": 3.674,
    "x": 11,
    "y": 1
  },
  {
    "value": 23.721,
    "x": 0,
    "y": 2
  },
  {
    "value": 44.273,
    "x": 1,
    "y": 2
  },
  {
    "value": 68.463,
    "x": 2,
    "y": 2
  },
  {
    "value": 85.571,
    "x": 3,
    "y": 2
  },
  {
    "value": 85.778,
    "x": 4,
    "y": 2
  },
  {
    "value": 69.134,
    "x": 5,
    "y": 2
  },
  {
    "value": 45.848,
    "x": 6,
    "y": 2
  },
  {
    "value": 27.125,
    "x": 7,
    "y": 2
  },
  {
    "value": 16.847,
    "x": 8,
    "y": 2
  },
  {
    "value": 11.918,
    "x": 9,
    "y": 2
  },
  {
    "value": 8.491,
    "x": 10,
    "y": 2
  },
  {
    "value": 5.65,
    "x": 11,
    "y": 2
  },
  {
    "value": 20.436,
    "x": 0,
    "y": 3
  },
  {
    "value": 39.635,
    "x": 1,
    "y": 3
  },
  {
    "value": 64.15,
    "x": 2,
    "y": 3
  },
  {
    "value": 84.275,
    "x": 3,
    "y": 3
  },
  {
    "value": 89.407,
    "x": 4,
    "y": 3
  },
  {
    "value": 77.438,
    "x": 5,
    "y": 3
  },
  {
    "value": 57.334,
    "x": 6,
    "y": 3
  },
  {
    "value": 40.924,
    "x": 7,
    "y": 3
  },
  {
    "value": 32.23,
    "x": 8,
    "y": 3
  },
  {
    "value": 26.345,
    "x": 9,
    "y": 3
  },
  {
    "value": 18.692,
    "x": 10,
    "y": 3
  },
  {
    "value": 10.778,
    "x": 11,
    "y": 3
  },
  {
    "value": 16.946,
    "x": 0,
    "y": 4
  },
  {
    "value": 31.996,
    "x": 1,
    "y": 4
  },
  {
    "value": 50.804,
    "x": 2,
    "y": 4
  },
  {
    "value": 65.794,
    "x": 3,
    "y": 4
  },
  {
    "value": 69.629,
    "x": 4,
    "y": 4
  },
  {
    "value": 62.612,
    "x": 5,
    "y": 4
  },
  {
    "value": 53.611,
    "x": 6,
    "y": 4
  },
  {
    "value": 51.41,
    "x": 7,
    "y": 4
  },
  {
    "value": 54.19,
    "x": 8,
    "y": 4
  },
  {
    "value": 51.132,
    "x": 9,
    "y": 4
  },
  {
    "value": 37.392,
    "x": 10,
    "y": 4
  },
  {
    "value": 20.559,
    "x": 11,
    "y": 4
  },
  {
    "value": 12.113,
    "x": 0,
    "y": 5
  },
  {
    "value": 21.902,
    "x": 1,
    "y": 5
  },
  {
    "value": 34.001,
    "x": 2,
    "y": 5
  },
  {
    "value": 43.3,
    "x": 3,
    "y": 5
  },
  {
    "value": 45.061,
    "x": 4,
    "y": 5
  },
  {
    "value": 40.583,
    "x": 5,
    "y": 5
  },
  {
    "value": 38.468,
    "x": 6,
    "y": 5
  },
  {
    "value": 46.908,
    "x": 7,
    "y": 5
  },
  {
    "value": 61.621,
    "x": 8,
    "y": 5
  },
  {
    "value": 66.662,
    "x": 9,
    "y": 5
  },
  {
    "value": 53.82,
    "x": 10,
    "y": 5
  },
  {
    "value": 32.705,
    "x": 11,
    "y": 5
  },
  {
    "value": 7.715,
    "x": 0,
    "y": 6
  },
  {
    "value": 12.779,
    "x": 1,
    "y": 6
  },
  {
    "value": 19.035,
    "x": 2,
    "y": 6
  },
  {
    "value": 23.839,
    "x": 3,
    "y": 6
  },
  {
    "value": 24.834,
    "x": 4,
    "y": 6
  },
  {
    "value": 23.214,
    "x": 5,
    "y": 6
  },
  {
    "value": 24.759,
    "x": 6,
    "y": 6
  },
  {
    "value": 34.859,
    "x": 7,
    "y": 6
  },
  {
    "value": 49.474,
    "x": 8,
    "y": 6
  },
  {
    "value": 55.699,
    "x": 9,
    "y": 6
  },
  {
    "value": 47.461,
    "x": 10,
    "y": 6
  },
  {
    "value": 32.902,
    "x": 11,
    "y": 6
  },
  {
    "value": 4.928,
    "x": 0,
    "y": 7
  },
  {
    "value": 7,
    "x": 1,
    "y": 7
  },
  {
    "value": 9.559,
    "x": 2,
    "y": 7
  },
  {
    "value": 11.538,
    "x": 3,
    "y": 7
  },
  {
    "value": 12.049,
    "x": 4,
    "y": 7
  },
  {
    "value": 11.892,
    "x": 5,
    "y": 7
  },
  {
    "value": 14.112,
    "x": 6,
    "y": 7
  },
  {
    "value": 21.319,
    "x": 7,
    "y": 7
  },
  {
    "value": 30.492,
    "x": 8,
    "y": 7
  },
  {
    "value": 33.608,
    "x": 9,
    "y": 7
  },
  {
    "value": 27.669,
    "x": 10,
    "y": 7
  },
  {
    "value": 19.134,
    "x": 11,
    "y": 7
  }
];

const options = {
  "height": 620,
  "locale": "ko",
  "title": {
    "subtitle": "Heatmap 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: long-form rectangular cells · continuous palette and legend.",
    "text": "히트맵"
  },
  "width": "container",
  "x": {
    "field": "x",
    "title": "Horizontal bin",
    "type": "quantitative"
  },
  "y": {
    "field": "y",
    "title": "Vertical bin",
    "type": "quantitative"
  }
};

Graflume.heatmap('#chart', data, options);

이식 가능한 스키마

ChartSpec 0.1 · options

{
  "height": 620,
  "locale": "ko",
  "title": {
    "subtitle": "Heatmap 모드가 실행 가능한 데이터와 옵션으로 보여주는 핵심 기능: long-form rectangular cells · continuous palette and legend.",
    "text": "히트맵"
  },
  "width": "container",
  "x": {
    "field": "x",
    "title": "Horizontal bin",
    "type": "quantitative"
  },
  "y": {
    "field": "y",
    "title": "Vertical bin",
    "type": "quantitative"
  }
}
  • header