IT 정보

Chart.js로 데이터 시각화 구현하기: 간단한 예제 코드

jerry99 2024. 10. 14. 12:22

웹 애플리케이션에서 데이터를 시각화하는 것은 중요한 요소입니다. 사용자가 복잡한 데이터를 한눈에 이해할 수 있도록 돕기 위해 그래프나 차트를 사용하게 되죠. 오늘 소개할 Chart.js는 손쉽게 데이터를 시각화할 수 있도록 돕는 간단하면서도 강력한 라이브러리입니다. 다양한 유형의 차트를 제공하고, 커스터마이징도 쉬워서 많은 웹 개발자들이 선호하는 라이브러리 중 하나입니다.

 

 


1. Chart.js란 무엇인가?

Chart.js는 HTML5 <canvas> 요소를 사용하여 다양한 유형의 차트를 그릴 수 있게 도와주는 자바스크립트 라이브러리입니다. 막대 차트, 선 차트, 원형 차트, 레이더 차트 등 여러 종류의 차트를 제공하며, 각 차트를 손쉽게 커스터마이징할 수 있습니다. 또한 차트를 반응형으로 만들어 다양한 디바이스에서 활용 가능합니다.


2. Chart.js 설치

A. CDN 사용

CDN을 이용하면 간단하게 Chart.js를 사용할 수 있습니다.

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

 

B. NPM 설치

Node.js 프로젝트에서는 NPM을 통해 설치할 수 있습니다.

npm install chart.js

3. 간단한 Chart.js 예제 코드

A. 막대 차트 예제

먼저, 막대 차트(Bar Chart) 를 그리는 간단한 예제를 만들어보겠습니다.

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chart.js Bar Chart Example</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        canvas {
            max-width: 600px;
        }
    </style>
</head>
<body>

<!-- 차트를 그릴 캔버스 요소 -->
<canvas id="myChart"></canvas>

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

<script>
    const ctx = document.getElementById('myChart').getContext('2d');
    const myChart = new Chart(ctx, {
        type: 'bar', // 막대 차트
        data: {
            labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], // X축 레이블
            datasets: [{
                label: '# of Votes', // 차트 제목
                data: [12, 19, 3, 5, 2, 3], // 각 레이블에 대한 데이터
                backgroundColor: [
                    'rgba(255, 99, 132, 0.2)',
                    'rgba(54, 162, 235, 0.2)',
                    'rgba(255, 206, 86, 0.2)',
                    'rgba(75, 192, 192, 0.2)',
                    'rgba(153, 102, 255, 0.2)',
                    'rgba(255, 159, 64, 0.2)'
                ],
                borderColor: [
                    'rgba(255, 99, 132, 1)',
                    'rgba(54, 162, 235, 1)',
                    'rgba(255, 206, 86, 1)',
                    'rgba(75, 192, 192, 1)',
                    'rgba(153, 102, 255, 1)',
                    'rgba(255, 159, 64, 1)'
                ],
                borderWidth: 1 // 막대 테두리 두께
            }]
        },
        options: {
            scales: {
                y: {
                    beginAtZero: true // Y축이 0에서 시작
                }
            }
        }
    });
</script>

</body>
</html>
 

설명:

  • 이 예제는 간단한 막대 차트로, 차트에 각기 다른 색상과 데이터를 사용하여 시각적으로 데이터 변화를 표현합니다.
  • type: 'bar'로 막대 차트를 생성하고, data 속성에 레이블과 데이터를 전달합니다.
  • 차트가 반응형으로 동작하며, 다양한 브라우저 환경에서도 자연스럽게 크기가 조절됩니다.

B. 원형 차트 예제

이번에는 원형 차트(Pie Chart) 를 그리는 예제를 만들어보겠습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chart.js Pie Chart Example</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        canvas {
            max-width: 600px;
        }
    </style>
</head>
<body>

<!-- 차트를 그릴 캔버스 요소 -->
<canvas id="myPieChart"></canvas>

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

<script>
    const ctx = document.getElementById('myPieChart').getContext('2d');
    const myPieChart = new Chart(ctx, {
        type: 'pie', // 원형 차트
        data: {
            labels: ['Red', 'Blue', 'Yellow'],
            datasets: [{
                label: '# of Votes',
                data: [300, 50, 100], // 각 섹션의 값
                backgroundColor: [
                    'rgba(255, 99, 132, 0.2)',
                    'rgba(54, 162, 235, 0.2)',
                    'rgba(255, 206, 86, 0.2)'
                ],
                borderColor: [
                    'rgba(255, 99, 132, 1)',
                    'rgba(54, 162, 235, 1)',
                    'rgba(255, 206, 86, 1)'
                ],
                borderWidth: 1
            }]
        },
        options: {
            responsive: true // 반응형 설정
        }
    });
</script>

</body>
</html>
 
 

설명:

  • 원형 차트를 통해 데이터의 비율을 시각적으로 보여줄 수 있습니다.
  • 각 섹션은 데이터를 기반으로 크기가 설정되며, backgroundColor와 borderColor를 통해 시각적인 차별화를 줄 수 있습니다.

4. Chart.js의 주요 기능

  1. 다양한 차트 유형: 막대 차트, 선 차트, 원형 차트, 레이더 차트, 혼합 차트 등 다양한 차트를 제공.
  2. 반응형 디자인 지원: 다양한 디바이스에 맞게 차트 크기가 자동으로 조정.
  3. 플러그인 확장성: 사용자 정의 플러그인을 통해 기능을 확장할 수 있음.
  4. 유연한 옵션: 데이터 레이블, 툴팁, 축 설정 등을 유연하게 커스터마이징할 수 있음.
  5. 애니메이션 지원: 차트 생성 및 업데이트 시 애니메이션을 적용하여 더 나은 사용자 경험 제공.

5. 결론

Chart.js는 웹 개발에서 데이터 시각화를 빠르고 손쉽게 구현할 수 있는 강력한 도구입니다. 다양한 차트 유형과 커스터마이징 가능한 옵션 덕분에 사용자 경험을 향상시킬 수 있는 방법을 제공합니다. 이번 포스팅에서는 막대 차트와 원형 차트를 예제로 소개했으니, 여러분도 차트의 다양한 기능을 사용하여 데이터를 효과적으로 시각화해보세요!