echarts 图例自定义图标,未激活图标置灰
实现的效果图
- 通过legend中的data来为每一个图列设置icon,
option={
//...
legend:{
itemHeight:'图标的高',
itemWidth:'图标的宽',
data:[{
name:'图例1',icon:'图标1'},...]
}
//...
}
- 监听legendselectchanged 事件
// data是http://echarts.baidu.com/examples/editor.html?c=pie-legend 例子中的data
myChart.on('legendselectchanged', function (params) {
let {
selected,name} = params
let theOption = data.legendData.find(dt => dt.name === name)
// iconActive 选中的图标
// iconUnActive 没有选中的图标
theOption.icon = selected[name] ? iconActive : iconUnActive
// 更新图列
myChart.setOption({
legend: {
data: data.legendData }
})
})
- 然后就ojbk 了
完整的代码
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
<script type=