[javascript] Chart.js에서의 동적 데이터 업데이트 방법

Chart.js는 웹 개발에서 인기 있는 JavaScript 라이브러리 중 하나입니다. 이를 사용하면 다양한 유형의 차트와 그래프를 생성할 수 있습니다. 하지만 때로는 동적으로 데이터를 업데이트해야 할 필요가 있을 수 있습니다. 이 글에서는 Chart.js에서 동적 데이터를 업데이트하는 방법에 대해 알아보겠습니다.

Chart.js 버전 확인

Chart.js를 사용하기 전에 현재 사용 중인 버전을 확인해야 합니다. Chart.js 버전에 따라 데이터 업데이트 방법이 달라질 수 있기 때문입니다. Chart.js의 공식 문서를 참조하여 사용 중인 버전에 맞는 문서를 확인하십시오.

데이터 업데이트 방법

Chart.js에서 데이터를 업데이트하는 방법은 간단합니다.

  1. 차트 인스턴스에 데이터를 할당합니다.
  2. 차트를 다시 그립니다.

아래는 예시 코드입니다.

// 차트 생성
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, { ... });

// 데이터 업데이트
function updateChart(newData) {
  myChart.data.datasets[0].data = newData;
  myChart.update();
}

위의 코드에서 updateChart 함수는 newData라는 새로운 데이터를 받아와 차트의 데이터를 업데이트하는 역할을 합니다. 이후 myChart.update() 함수를 호출하여 차트를 다시 그립니다. 이렇게 하면 새로운 데이터로 차트가 업데이트됩니다.

예시

다음은 Bar 차트를 사용하여 동적 데이터를 업데이트하는 예시입니다.

// 차트 생성
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
  type: "bar",
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [{ 
      label: "My First Dataset",
      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: {...}
});

// 데이터 업데이트
function updateChart(newData) {
  myChart.data.datasets[0].data = newData;
  myChart.update();
}

// 새로운 데이터로 차트 업데이트
var newData = [10, 20, 30, 40, 50, 60];
updateChart(newData);

위의 코드에서 updateChart 함수는 새로운 데이터로 차트를 업데이트하는 역할을 합니다. newData 변수에 새로운 데이터를 할당한 후 updateChart 함수를 호출하면 차트가 업데이트됩니다.

참고 자료