ECharts 图例(legend)分两行显示并且初始化设置不选中状态,需要点击两次不选中状态的图例才能变成选中状态问题解决

问题描述:

图例(legend)分两行显示并且初始化设置不选中状态,需要点击两次不选中状态的图例才能变成选中状态

问题分析:

1、经过多次测试才发现,有多组图例的情况下,只有第一组图例初始化时设置不选中状态,才不会出现只有点击两次不选中状态的图例才会变成选中状态情况。

解决办法:

(1)将设置不选中状态的那组图例放于legend数组的第一个,具体步骤请查看以下博客。

ECharts 图例(legend)分两行显示并且初始化设置不选中状态

(2)将多组图例变成一组图例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以通过监听 echarts 的 `legendselectchanged` 事件,在事件回调函数中手动设置选中状态。具体实现代码如下: ``` <template> <div class="chart-container"> <div ref="chart" class="chart"></div> </div> </template> <script> import * as echarts from 'echarts' export default { data() { return { chartData: { legendData: ['A', 'B', 'C'], seriesData: [ { value: 335, name: 'A' }, { value: 310, name: 'B' }, { value: 234, name: 'C' }, ], }, } }, mounted() { this.initChart() }, methods: { initChart() { this.chart = echarts.init(this.$refs.chart) this.chart.setOption({ legend: { data: this.chartData.legendData, }, series: [ { type: 'pie', data: this.chartData.seriesData, }, ], }) // 监听图例选择事件 this.chart.on('legendselectchanged', (params) => { const selected = params.selected // 遍历所有图例 for (let i = 0; i < this.chartData.legendData.length; i++) { const name = this.chartData.legendData[i] // 如果图例未被选中,则手动设置选中状态 if (!selected[name]) { this.chart.dispatchAction({ type: 'legendSelect', name: name, }) } } }) }, }, } </script> <style> .chart-container { width: 500px; height: 500px; } .chart { width: 100%; height: 100%; } </style> ``` 在上述代码中,我们首先在模板中添加了一个 `div` 元素作为 echarts 容器。在 `mounted` 钩子函数中,我们调用 `initChart` 方法初始化 echarts 图表,并通过 `legendselectchanged` 事件监听图例选择事件。在事件回调函数中,我们通过 `params.selected` 获取当前被选中图例状态,并遍历所有图例,如果当前图例未被选中,则手动设置选中状态。这样就可以保证图例不会失去选中状态了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值