Learning
레슨 1 / 8·15분

막대/선 차트

Chart.js 시작하기

Chart.js는 HTML Canvas 위에 아름다운 차트를 그려주는 오픈소스 라이브러리입니다. 간단한 설정 객체(config) 하나로 반응형 인터랙티브 차트를 만들 수 있습니다. CDN이나 npm을 통해 프로젝트에 추가할 수 있습니다.

html
<!-- CDN으로 Chart.js 추가 -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

<!-- 차트를 그릴 캔버스 -->
<canvas id="myChart" width="400" height="200"></canvas>

막대 차트(Bar Chart) 만들기

new Chart()에 캔버스의 2D 컨텍스트와 설정 객체를 전달합니다. type으로 차트 종류를 지정하고, data 객체에 labels(X축 라벨)와 datasets(데이터 묶음)를 정의합니다.

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

const barChart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: ['1월', '2월', '3월', '4월', '5월', '6월'],
    datasets: [{
      label: '월별 매출 (만원)',
      data: [120, 190, 150, 250, 220, 300],
      backgroundColor: [
        'rgba(54, 162, 235, 0.6)',
        'rgba(75, 192, 192, 0.6)',
        'rgba(255, 206, 86, 0.6)',
        'rgba(153, 102, 255, 0.6)',
        'rgba(255, 159, 64, 0.6)',
        'rgba(255, 99, 132, 0.6)',
      ],
      borderColor: 'rgba(54, 162, 235, 1)',
      borderWidth: 1,
    }],
  },
});

선 차트(Line Chart) 만들기

javascript
const lineChart = new Chart(ctx, {
  type: 'line',
  data: {
    labels: ['월', '화', '수', '목', '금'],
    datasets: [{
      label: '일일 방문자 수',
      data: [850, 1200, 1050, 1400, 980],
      borderColor: 'rgb(75, 192, 192)',
      backgroundColor: 'rgba(75, 192, 192, 0.1)',
      fill: true,          // 영역 채우기
      tension: 0.3,        // 곡선 정도 (0 = 직선)
      pointRadius: 5,      // 데이터 포인트 크기
      pointHoverRadius: 8, // 호버 시 크기
    }],
  },
});
💡

fill: true와 tension 값을 조합하면 부드러운 영역 차트(Area Chart)를 만들 수 있습니다. tension 값은 0(직선)에서 1 사이로 조절합니다.