
시간 가중 지수 이동 평균(TWEMA) 스무딩 (기본값)
y 값의 개수)를 고려합니다. 이를 통해 서로 다른 특성을 가진 여러 선을 동시에 표시할 때에도 일관된 스무딩이 가능합니다.
아래는 내부적으로 이 방식이 어떻게 동작하는지를 보여주는 샘플 코드입니다:

가우시안 스무딩

러닝 평균 스무딩

지수 이동 평균(EMA) 스무딩
- 샘플링
- 그룹화
- 표현식
- 단조롭지 않은 x축
- 시간 기반 x축

원본 데이터 숨기기

선 그래프에서 스무딩을 사용해 노이즈가 많은 데이터의 추세를 확인할 수 있습니다.

y 값의 개수)를 고려합니다. 이를 통해 서로 다른 특성을 가진 여러 선을 동시에 표시할 때에도 일관된 스무딩이 가능합니다.
아래는 내부적으로 이 방식이 어떻게 동작하는지를 보여주는 샘플 코드입니다:
const smoothingWeight = Math.min(Math.sqrt(smoothingParam || 0), 0.999);
let lastY = yValues.length > 0 ? 0 : NaN;
let debiasWeight = 0;
return yValues.map((yPoint, index) => {
const prevX = index > 0 ? index - 1 : 0;
// VIEWPORT_SCALE는 결과를 차트의 x축 범위에 맞게 조정합니다
const changeInX =
((xValues[index] - xValues[prevX]) / rangeOfX) * VIEWPORT_SCALE;
const smoothingWeightAdj = Math.pow(smoothingWeight, changeInX);
lastY = lastY * smoothingWeightAdj + yPoint;
debiasWeight = debiasWeight * smoothingWeightAdj + 1;
return lastY / debiasWeight;
});



data.forEach(d => {
const nextVal = d;
last = last * smoothingWeight + (1 - smoothingWeight) * nextVal;
numAccum++;
debiasWeight = 1.0 - Math.pow(smoothingWeight, numAccum);
smoothedData.push(last / debiasWeight);

