Chartist.js는 웹에서 차트를 생성하고 조작할 수 있는 JavaScript 라이브러리입니다. 이 라이브러리는 다양한 차트 유형을 지원하며 사용하기 간편한 API를 제공합니다.
차트를 생성하고 데이터를 표시하는 것 이외에도 Chartist.js는 이벤트 핸들링 기능을 제공하여 사용자의 상호작용에 응답할 수 있습니다. 예를 들어 차트 항목을 클릭하거나 마우스를 호버할 때 원하는 동작을 수행하도록 설정할 수 있습니다.
이벤트 핸들러 등록하기
Chartist.js에서 이벤트 핸들러를 등록하려면 on
메서드를 사용해야 합니다. 다음은 click
이벤트에 대한 핸들러를 등록하는 예제입니다.
new Chartist.Line('.chart', {
labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],
series: [
{ name: 'Series 1', data: [1, 2, 3, 4, 5] },
{ name: 'Series 2', data: [5, 4, 3, 2, 1] }
]
}, {
chartPadding: {
right: 40
}
}).on('click', function(event) {
console.log('Clicked on chart');
});
위 코드에서 .chart
는 차트를 렌더링할 요소의 클래스나 ID입니다. 이 코드는 .chart
요소에 클릭 이벤트 핸들러를 등록하는데, 클릭 시 콘솔에 ‘Clicked on chart’라는 메시지를 출력합니다.
이벤트 핸들러에서 데이터 접근하기
이벤트 핸들러에서는 event
매개변수를 통해 발생한 이벤트에 대한 정보를 얻을 수 있습니다. 해당 이벤트를 통해 사용자가 클릭한 항목의 데이터에 접근할 수 있습니다. 예를 들어, 다음은 클릭한 항목의 레이블과 데이터를 출력하는 예제입니다.
new Chartist.Line('.chart', {
labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],
series: [
{ name: 'Series 1', data: [1, 2, 3, 4, 5] },
{ name: 'Series 2', data: [5, 4, 3, 2, 1] }
]
}, {
chartPadding: {
right: 40
}
}).on('click', function(event) {
var label = event.axisX.ticks[event.index];
var seriesName = event.series.name;
var value = event.series.data[event.index];
console.log('Clicked on', label, 'of', seriesName, 'with value', value);
});
위 코드에서 event.axisX.ticks[event.index]
를 통해 클릭한 항목의 레이블을 가져올 수 있고, event.series.name
을 통해 해당 항목이 속한 시리즈의 이름을 가져올 수 있습니다. 마지막으로 event.series.data[event.index]
를 통해 해당 항목의 데이터를 가져올 수 있습니다.
결론
Chartist.js의 이벤트 핸들링 기능은 사용자와 웹 차트 간의 상호작용을 원활하게 만들어줍니다. 위의 예제를 활용하여 차트를 클릭하거나 마우스 호버 시 원하는 동작을 추가하고 개인적인 요구사항에 맞게 활용해보세요.
참고 문서: Chartist.js 공식 문서