echarts使用 图例默认不选中

本文介绍如何使用ECharts通过图例实现两个图表之间的动态切换,包括图例样式的自定义、图例项的默认状态设置及点击事件的处理。通过实例展示了如何在点击事件中清除图表并重新设置配置。

legend: {
  show: ‘’,
  icon:“circle”,  //更改图列的默认样式 ( ‘circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’)(全部的图例类型改变)
  data:[‘邮件营销’,‘全部’],//图例
  selected:{
    “全部”:false //图例为‘全部’的一项默认置灰
  }
},

图例的点击事件
mainChart.on(‘legendselectchanged’, function(params) {
  console.log(params)     //被选中的图例数组
})

mainChart.clear()
mainChart.setOption()

场景:两个图表通过图例进行切换,在点击事件清除图表实例,再重新设置配置

ECharts 中,`markLine` 默认会随着图例的取消选中而隐藏。为了实现 `markLine` 图例取消选中而消失的效果,可以通过设置 `legendHoverLink: false` 来解除 `markLine` 与图例的联动关系。 以下是一个实现方式的示例配置: ```javascript option = { tooltip: { trigger: 'axis' }, legend: { data: ['销量'] }, xAxis: { type: 'category', data: ['一月', '二月', '三月', '四月', '五月'] }, yAxis: { type: 'value' }, series: [{ name: '销量', type: 'line', data: [120, 200, 150, 80, 70], markLine: { data: [{ type: 'average', name: '平均值' }], legendHoverLink: false } }] }; ``` 通过设置 `markLine.legendHoverLink = false`,可以确保该标记线会因图例状态变化而隐藏,从而实现独立显示[^1]。这种机制适用于需要将某些参考线(如平均值、预警值、目标值等)始终保留在表上,以辅助用户进行数据分析和趋势判断的场景。 ### 注意事项 - `legendHoverLink: false` 仅影响 `markLine` 与图例的联动行为,并会影响其在表中的绘制逻辑。 - 如果表中存在多个 `markLine`,可以分别为每个 `markLine` 设置该属性。 - 该配置适用于折线、柱状等支持 `markLine` 的表类型。 在 Vue 环境中,也可以通过监听 `legendselectchanged` 事件,动态控制 `markLine` 的显示状态。例如,在 `legendselectchanged` 事件中,根据图例选中状态动态设置 `markLine.data[0].yAxis` 属性,从而实现更灵活的控制逻辑: ```javascript this.myChart.on("legendselectchanged", function(event) { let selected = event.selected; if (!selected['xx']) { that.optionCharts.series[2].markLine.data[0].yAxis = {}; that.optionCharts.legend.selected['xx'] = false; } else { that.optionCharts.series[2].markLine.data[0].yAxis = that.jjsw; that.optionCharts.legend.selected['xx'] = true; } that.myChart.setOption(that.optionCharts); }); ``` 这种方式适用于需要在运行时根据用户交互动态控制 `markLine` 显示状态的场景。 ### 示例代码 以下是一个完整的配置示例,展示了如何让 `markLine` 图例取消选中而消失: ```javascript option = { tooltip: { trigger: 'axis' }, legend: { data: ['销量'] }, xAxis: { type: 'category', data: ['一月', '二月', '三月', '四月', '五月'] }, yAxis: { type: 'value' }, series: [{ name: '销量', type: 'line', data: [120, 200, 150, 80, 70], markLine: { data: [{ type: 'average', name: '平均值' }], legendHoverLink: false } }] }; ``` ### 相关问题 - 如何在堆叠中让 markLine 始终显示在最上层? - markLine 是否可以跨多个系列统一显示? - 如何在 Vue 中通过监听图例事件动态控制 markLine 的显隐? - markLine 是否支持绑定点击事件?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值