웹 페이지에서 데이터 시각화에 많이 사용되는 C3.js는 사용하기 쉽고 다양한 기능을 제공하는 차트 라이브러리입니다. 그러나 범례(legend) 클릭 시 데이터 순서가 변경되는 문제가 발생할 수 있습니다.
1. 문제점?
C3.js에서 차트를 생성하고, 범례를 클릭하면 데이터가 표시되거나 숨겨집니다. 하지만 기본 설정에서는 범례를 클릭할 때 데이터의 순서가 자동으로 변경되는 문제가 발생할 수 있습니다. 이는 사용자가 데이터의 순서에 의존하는 경우, 불편을 초래할 수 있습니다.
2. 해결 방법: data.order
옵션 사용
C3.js는 data.order
옵션을 제공하여 데이터의 순서를 제어할 수 있습니다. 이 옵션을 적절하게 설정함으로써 범례 클릭 시 데이터 순서가 변경되지 않도록 고정할 수 있습니다.
data.order
는 다음과 같은 네 가지 값을 가질 수 있습니다:
desc
: 데이터 값을 내림차순으로 정렬.asc
: 데이터 값을 오름차순으로 정렬.function
: 사용자가 정의한 커스텀 정렬 함수.null
: 데이터 로드 순서를 유지(데이터 순서를 변경하지 않음)
3. 해결 코드 예시
data.order
옵션을 null
로 설정하여 데이터가 로드된 순서를 유지함으로써, 범례 클릭 시 데이터 순서가 변경되지 않게 할 수 있습니다. 아래는 해결된 코드 예시입니다.
var chart = c3.generate({
data: {
columns: [
['data1', 30, 200, 100, 400, 150, 250],
['data2', 130, 100, 140, 200, 150, 50],
['data3', 130, 100, 140, 200, 150, 50],
],
order: null, // 데이터 로드 순서를 유지
type: 'bar'
},
bar: {
width: {
ratio: 0.5 // this makes bar width 50% of length between ticks
}
// or
//width: 100 // this makes bar width 100px
}
});
위 코드에서는 data.order: null
을 설정함으로써 데이터가 차트에 처음 로드된 순서를 유지하게 됩니다. 이로 인해, 사용자가 범례를 클릭해도 데이터 순서가 변경되지 않습니다.
- 기본 설정 문제: 범례를 클릭할 때 데이터가 정렬되면서 순서가 변경되는 현상이 발생했습니다.
- 옵션 분석: C3.js의
data.order
옵션을 확인한 결과, 데이터의 정렬 방식을 제어할 수 있음을 발견했습니다. - 해결 방법 적용:
data.order
옵션을null
로 설정하여 데이터 로드 순서를 고정했습니다. 그 결과, 범례 클릭 시에도 데이터 순서가 변경되지 않게 되었습니다.
C3.js에서 범례 클릭 시 데이터 순서가 변경되는 문제는 data.order
옵션을 활용해 쉽게 해결할 수 있습니다. data.order
를 null
로 설정하면 데이터는 로드된 순서를 유지하며, 범례 클릭에도 순서가 변하지 않게 됩니다.
이 방법은 차트의 데이터 순서를 유지하는 데 매우 간단하면서도 효과적인 해결책을 제공합니다. 데이터의 순서가 중요한 시각화 작업에서는 data.order
옵션을 적극적으로 활용해 보세요.
'JavaScript' 카테고리의 다른 글
함수의 return은? (0) | 2022.12.17 |
---|---|
chart.js를 살짝 익혀봅시다 (0) | 2021.10.28 |
[JavaScript] 대문자 - 소문자 변환 (toLowerCase, toUpperCase) (0) | 2021.02.03 |
[JavaScript] 0~10까지 숫자 카운트 (0) | 2020.12.11 |
카카오지도 API 연결 성공기 (0) | 2020.11.02 |
댓글