echarts多图例时增加批量减选、加选

CSDN话题挑战赛第1期
活动详情地址:CSDN

参赛话题:前端学习记录
话题描述:记录前端学习过程中的某个知识点、解决方案等等

问题

当图片中的图例非常多时,我们想只看某一个需要点击取消多个,非常麻烦。

解决方案

在legend和series都增加图例内容,如果只在legend增加不显示,之后通过

.on('legendselectchanged', function (params) {})

监听图例点击事件,来修改legend属性中的selected控制图表显示内容;

参考文档

Documentation - Apache EChartsECharts, a powerful, interactive charting and visualization library for browserhttps://echarts.apache.org/zh/option.html#legend.selected

实践

//初始化
this.chart = this.$echarts.init(this.$refs.chart);

//监听图例点击事件
this.chart.on('legendselectchanged', function (params) {
    console.log(params);
	/*
        params中内容为
		{
			name: "a0" //点击图例的key
			selected: {
				a0: false //每一个的状态
				a1: true
				a2: true
				a3: true
				a4: true
				a5: true
				a6: true
				a7: true
				a8: true
				a9: true
				a10: true
				a11: true
				a12: true
				a13: true
				a14: true
				a15: true
				a16: true
				a17: true
				a18: true
				a19: true
			}
		}
	*/
    // 例如我们需要a16显示时a0、a1、a2显示,a16隐藏时a0、a1、a2隐藏;
    if(params.name == 'a16'){
        this.legend_selected.a0 = this.legend_selected.a1 = this.legend_selected.a2 = params.selected[params.name];

        // 这里注意如果我们没有要修改的内容就不要setOption了,legend_selected没有变化的话,我们setOption会使点击没有效果
        this.chart.setOption(this.charts_option);
    }
    
})

// 请求数据代码,并处理成我们需要的格式

// 增加我们需要的图例,series中只增加名称没有data是不会在图表中显示的
this.series = this.series.concat([{
			name: 'a16',
			type: "line",
		},
		{
			name: 'a17',
			type: "line",
		},
		{
			name: 'a18',
			type: "line",
		},
		{
			name: 'a19',
			type: "line",
		}]);
this.legendData = this.legendData.concat(['a16', 'a17', 'a18', 'a19']);

// 这里只列出了部分配置项其他的根据自己需求增加
this.charts_option = {
    legend: {
	    data: this.legendData,
	    selected: this.legend_selected, // 默认为空对象
    },
    series: this.series,
}

// 设置图表配置项
this.chart.setOption(this.charts_option);

实现效果

echarts多图例时增加批量减选、加选效果

CSDN话题挑战赛第1期
活动详情地址:CSDN

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓_枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值