728x90
반응형
ECharts 파이 차트에서 이름(label)이 같은 경우 같은 색상으로 표시되는 이유는,
ECharts가 내부적으로 name 값을 기준으로 색상을 매핑하기 때문입니다.
즉, data: [{name: 'A', value: 100}, {name: 'A', value: 200}] 처럼 name이 동일하면 같은 색상을 자동으로 지정합니다.
✅ 해결 방법: name을 고유하게 바꾸고, label에서는 다시 원래 이름으로 보이게 설정
const rawData = [
{ name: 'A', value: 100 },
{ name: 'A', value: 200 }
];
// 실제 표시할 이름은 label에서 처리하고,
// 내부 name은 유일하게 만들어줍니다.
const dataList = rawData.map((item, index) => ({
name: `${item.name}_${index}`, // 고유 name 부여
realName: item.name, // 실제 보여줄 이름
value: item.value
}));
option = {
series: [
{
type: 'pie',
data: dataList,
color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc', '#d8b5ff'],
label: {
show: true,
position: 'inside',
fontSize: 13,
formatter: function (data) {
const originalName = data.data.realName;
return `${originalName}\n${Common.numberWithCommas(data.value)}\n(${data.percent.toFixed(1)}%)`;
}
},
right: '20%',
radius: ['0%', '95%']
}
]
};
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[js][datatables] Scroller 플러그인 (0) | 2025.05.31 |
---|---|
[js][datatables] datatables 높이 조절 (0) | 2025.05.30 |
[js] sessionStorage.setItem("document.referrer", ''); (0) | 2025.05.22 |
[js] 문자열 추출 split/ slice (0) | 2025.05.14 |
[js] dropzone chunking, forceChunking (0) | 2025.05.13 |