图例组件的名称不方便进行定义(格式化),得和图表里面的对应项的 name 对应起来。折中的办法,就是:比如图例要显示A、B、C,图表里要显示1、2、3,那我可以把对应项的名称改为A、B、C,然后利用图表series的 formatter 属性格式化图表显示为 1、2、3,formatter里面可以取到对应A、B、C的名称,然后判断一下返回1、2、3。本质上是以图例为基准,修改图表label的显示
示例代码
<script src="https://cdn.bootcss.com/echarts/4.0.4/echarts.js"></script>
<div id="main" style="width: 600px;height:400px;"></div>
<script>
$(function () {
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '某站点用户访问来源',
subtext: '纯属虚构',
x: 'center'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: ['A', 'B', 'C']
},
series: [
{
name: '访问来源',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
normal: {
show: true, //展示
position: 'outside', // outside表示文本显示位置为外部
formatter: function (params) {
/*
参数 params 是 formatter 需要的单个数据集。格式如下:
{
componentType: 'series',
// 系列类型
seriesType: string,
// 系列在传入的 option.series 中的 index
seriesIndex: number,
// 系列名称
seriesName: string,
// 数据名,类目名
name: string,
// 数据在传入的 data 数组中的 index
dataIndex: number,
// 传入的原始数据项
data: Object,
// 传入的数据值。在多数系列下它和 data 相同。在一些系列下是 data 中的分量(如 map、radar 中)
value: number|Array|Object,
// 坐标轴 encode 映射信息,
// key 为坐标轴(如 'x' 'y' 'radius' 'angle' 等)
// value 必然为数组,不会为 null/undefied,表示 dimension index 。
// 其内容如:
// {
// x: [2] // dimension index 为 2 的数据映射到 x 轴
// y: [0] // dimension index 为 0 的数据映射到 y 轴
// }
encode: Object,
// 维度名列表
dimensionNames: Array<String>,
// 数据的维度 index,如 0 或 1 或 2 ...
// 仅在雷达图中使用。
dimensionIndex: number,
// 数据图形的颜色
color: string,
// 百分比
percent: number,
}*/
//这里可以根据取到的项返回对应的图表label
return params.dataIndex;
},
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
},
},
labelLine: {
normal: {
show: true
}
},
data: [
{
value: 500,
name: 'A',
itemStyle: {
color: '#2756c2' //这里可以设置颜色
}
},
{
value: 800,
name: 'B',
itemStyle: {
color: '#2ec23a'
}
},
{
value: 200,
name: 'C',
itemStyle: {
color: '#c2220a'
}
},
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
});
</script>