문서 › 상호작용과 내보내기
많은 점 (다운샘플링)
수만 개 점의 선·영역을 LTTB 로 줄여 그리기. CSV·표는 원본 그대로.
선·영역 차트에 점이 2,000개를 넘으면 82chart는 그림 폭(px)쯤의 점만 골라 그립니다. 고르는 방법은 LTTB(Largest-Triangle-Three-Buckets)로, 구간마다 모양을 가장 많이 바꾸는 점을 남기기 때문에 봉우리와 골짜기가 사라지지 않습니다. SVG 하나에 수만 개의 점을 넣지 않으니 화면·서버 렌더링·내보내기가 모두 가벼워집니다.
움직이는 예제
이 예제의 코드
createChart('#chart', {
type: 'line',
title: '센서 값 (2만 개)',
data: {
series: [{
name: '온도',
data: Array.from({ length: 20000 }, (_, i) => [Date.UTC(2026, 9, 1) + i * 60000, 20 + Math.sin(i / 300) * 6 + (i % 1733 === 0 ? 9 : 0)]).map(([t, v]) => [new Date(t), +v.toFixed(2)]),
}],
},
});| downsample | 동작 |
|---|---|
| (기본) | 선·영역만, 보이는 점이 2,000개를 넘으면 그림 폭쯤으로 줄임 |
숫자, 예: 500 | 보이는 점이 이보다 많으면 이만큼으로 줄임 |
false | 줄이지 않고 모두 그림 |
- 툴팁·크로스헤어·키보드는 남은 점 위에서 움직입니다. 확대(
zoom)하면 보이는 구간만 다시 골라서 원래 점이 더 많이 보입니다. toCSV(), 내려받은 CSV, 데이터 표에는 줄이기 전의 모든 값이 들어갑니다.- 빈 값(
null) 앞뒤는 남겨서 선이 끊기는 곳은 그대로입니다. 시리즈가 여럿이면 각 시리즈에서 고른 점을 합쳐 모두 같은 x 에 놓입니다. - 막대·산점도는 줄이지 않습니다. 막대 수천 개는 미리 묶어서(일·주 합계) 넘기세요.