chart

문서 › 상호작용과 내보내기

많은 점 (다운샘플링)

수만 개 점의 선·영역을 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 에 놓입니다.
  • 막대·산점도는 줄이지 않습니다. 막대 수천 개는 미리 묶어서(일·주 합계) 넘기세요.