Насколько я знаю, не существует простого способа изменить метки легенды, как вы хотите, но вы можете настроить что-то вроде предоставленного снимка экрана: сначала определите данные, а затем разделите их для legend
и series
по отдельности. Скрыть legend icon
и настроить стили элементов.
dataSet = [
{ name: 'Category1', value: 335, color: '#e0ffd7' },
{ name: 'Category2', value: 310, color: '#e494ac' },
{ name: 'Category3', value: 234, color: '#8cf4ce' },
{ name: 'Category4', value: 135, color: '#37d5da' }
];
var option = {
legend: {
orient: 'horizontal',
center: 'center',
icon: 'none',
textStyle: {
padding: [4, 20, 4, 20],
borderRadius: 4
},
data: dataSet.map( ({name, color}) => ({ name, textStyle: { backgroundColor: color }}) ),
},
series: [
{
name: 'Categories:',
type: 'pie',
radius: ['50%', '70%'],
label: { show: false, position: 'center' },
data: dataSet.map( ({name, value, color}) => ({ name, value, itemStyle: { color: color } }) ),
}
]
};
myChart = echarts.init(document.querySelector('#myChart'));
myChart.setOption(option);
<script src="https://cdn.jsdelivr.net/npm/echarts@4.7.0/dist/echarts.min.js"></script>
<div id="myChart" style="width:600px; height:400px;"></div>