[javascript] Highcharts에서 손 그리기 차트 만들기

Highcharts는 JavaScript 기반으로 동적이고 상호 작용 가능한 차트를 생성하는 데 사용되는 강력한 라이브러리입니다. 이 블로그 포스트에서는 Highcharts를 사용하여 손 그리기 차트를 만드는 방법을 알아보겠습니다.

Step 1: 필수 파일 로드하기

먼저, Highcharts 라이브러리 파일과 관련 리소스를 HTML 문서에 로드해야 합니다. 다음과 같은 코드를 <head> 태그 내에 추가해주세요:

<!DOCTYPE html>
<html>
<head>
    <title>손 그리기 차트 예제</title>

    <!-- Highcharts 라이브러리 로드 -->
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/annotations.js"></script>
</head>
<body>
    <!-- 차트를 표시할 div 요소 -->
    <div id="chart-container"></div>

    <!-- Highcharts 차트 생성 스크립트 -->
    <script src="script.js"></script>
</body>
</html>

Step 2: 손 그리기 차트 생성하기

다음으로, Highcharts를 사용하여 손 그리기 차트를 생성하는 JavaScript 코드를 작성해야 합니다. script.js 파일에 다음 코드를 작성해주세요:

// 차트 컨테이너 요소를 가져옴
const container = document.getElementById('chart-container');

// 손 그리기 차트 생성 함수
function createChart() {
   Highcharts.chart(container, {
      chart: {
          type: 'spline',
          events: {
              load: function() {
                  // 차트가 로드되면 마우스 이벤트 리스너를 추가
                  container.addEventListener('mousedown', startDrawing);
                  container.addEventListener('mousemove', drawPath);
                  container.addEventListener('mouseup', endDrawing);
              }
          }
      },
      title: {
          text: '손 그리기 차트 예제'
      },
      series: [{
          name: 'Drawing',
          data: [],
          enableMouseTracking: false // 마우스 이벤트 추적 비활성화
      }],
      plotOptions: {
          spline: {
              marker: {
                  enabled: false // 데이터 포인트에 마커 비활성화
              }
          }
      }
   });
}

// 마우스 다운 이벤트 핸들러
function startDrawing(event) {
   const chart = Highcharts.charts[0];
   const x = event.xAxis[0].value;
   const y = event.yAxis[0].value;

   // 마우스가 선택한 위치에서 데이터 포인트 추가
   chart.series[0].addPoint({ x, y });
}

// 마우스 이동 이벤트 핸들러
function drawPath(event) {
   const chart = Highcharts.charts[0];
   const x = event.xAxis[0].value;
   const y = event.yAxis[0].value;

   // 마우스 이동에 따라 데이터 포인트 추가
   chart.series[0].addPoint({ x, y });
}

// 마우스 업 이벤트 핸들러
function endDrawing() {
   const chart = Highcharts.charts[0];

   // 마우스 이벤트 리스너 제거
   container.removeEventListener('mousedown', startDrawing);
   container.removeEventListener('mousemove', drawPath);
   container.removeEventListener('mouseup', endDrawing);
}

// 손 그리기 차트 생성 함수 호출
createChart();

Step 3: 결과 확인하기

위의 코드를 작성하고 HTML 파일을 브라우저에서 열면 손 그리기 차트가 표시됩니다. 마우스로 차트 영역 내에서 그림을 그릴 수 있습니다.

이제 Highcharts를 사용하여 손 그리기 차트를 만드는 방법을 알았습니다. Highcharts의 다양한 기능과 설정을 이용하여 차트를 사용자 정의할 수 있으니 참고해보세요. 더 자세한 정보는 Highcharts 공식 문서를 참조하세요.