[javascript] Chart.js에서의 히스토그램 생성 방법

히스토그램은 데이터의 분포를 시각적으로 나타내는데 사용되는 그래프입니다. Chart.js는 HTML5의 Canvas를 기반으로 동작하는 JavaScript 라이브러리로, 다양한 종류의 그래프를 생성할 수 있습니다.

1. Chart.js 라이브러리 가져오기

히스토그램을 생성하기 위해 우선 Chart.js 라이브러리를 사용할 수 있도록 가져와야 합니다. 라이브러리를 다운로드하거나 CDN을 이용하여 가져올 수 있습니다.

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

2. Canvas 요소 생성하기

Chart.js는 그래프를 그릴 HTML의 Canvas 요소가 필요합니다. 히스토그램을 그릴 Canvas 요소를 HTML에 추가합니다.

<canvas id="histogramChart"></canvas>

3. 히스토그램 데이터 준비하기

히스토그램을 생성하기 위해 데이터를 준비해야 합니다. 히스토그램은 각 데이터의 빈도를 표시하는 막대 그래프로 나타내기 때문에, 데이터의 빈도를 계산해야 합니다.

const data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];  // 데이터 배열 예시
const binSize = 10;  // 빈도를 계산할 구간 크기 (bin size)
const bins = [];  // 빈도를 저장할 배열

for (let i = 0; i <= 100; i += binSize) {
  const count = data.filter(value => value >= i && value < i + binSize).length;
  bins.push(count);
}

4. 히스토그램 그래프 생성하기

Chart.js를 사용하여 히스토그램 그래프를 생성합니다. new Chart()를 사용하여 인스턴스를 생성하고, 생성된 인스턴스에 Canvas 요소와 데이터를 설정합니다.

const ctx = document.getElementById('histogramChart').getContext('2d');

const chart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: bins.map((_, index) => index * binSize + '-' + ((index + 1) * binSize)),
    datasets: [{
      label: '빈도',
      data: bins,
      backgroundColor: 'rgba(54, 162, 235, 0.5)',
      borderColor: 'rgba(54, 162, 235, 1)',
      borderWidth: 1
    }]
  },
  options: {
    responsive: true,
    scales: {
      x: {
        title: {
          display: true,
          text: '빈도 구간'
        }
      },
      y: {
        title: {
          display: true,
          text: '빈도'
        }
      }
    }
  }
});

5. 히스토그램 그래프 확인하기

위의 코드를 실행하고 웹 페이지에서 히스토그램 그래프를 확인해보세요. 데이터의 빈도를 시각적으로 파악할 수 있습니다.

히스토그램은 데이터 분포를 파악하는 데 유용한 그래프입니다. Chart.js를 사용하여 간단하게 히스토그램을 생성할 수 있습니다. Chart.js의 다양한 옵션을 사용하면 그래프의 스타일을 변경하거나 추가적인 기능을 구현할 수도 있습니다.

히스토그램 생성에 대한 더 자세한 내용은 Chart.js 공식 문서를 참고해주세요.