echarts 如何设置(dataZoom)多个图形的数据区域一起联动缩放响应

数据区域联动缩放需要用到 dataZoom 的专属事件 dispatchAction
在这里插入图片描述
实现多个数据区域联动缩放功能

<div style="width:100%;height:320px;" id="test01"></div>
<div style="width:100%;height:320px;" id="test02"></div>
<div style="width:100%;height:320px;" id="test03"></div>
let option = {
            title:{
              text:'测试'
            },
            tooltip: {
              trigger: 'axis',
              backgroundColor: 'rgba(17,21,43,0.75)',
              textStyle:{
                color:'#FFFFFF'
              },
              axisPointer: {
                type: 'cross'
              },
            },
            legend: {
              right:'5%',
              data: ['测试']
            },
            grid: {
              left: '2%',
              right: '4%',
              bottom: 50,
              containLabel: true
            },
            dataZoom: [
              {
                show: true,
                height: 20
              }
            ],
            xAxis: [
              {
                type: 'category',
                axisLine: { show: false },
                axisTick: { show: false },
                boundaryGap: ['20%', '20%'],
                data:[12,32,52,72,92]
              }
            ],
            yAxis: [
              {
                type: 'value',
                name: '测试',
                axisLine: { show: false },
                axisTick: { show: false }
              }
            ],
            series: [
              {
                name: '测试',
                type: 'line',
                symbol: 'circle',
                data: [12,13,43,56,78],
                xAxisIndex:0,
              }            
             ]
          }
let test1 = echarts.init(document.getElementById('test01'));
let test2 = echarts.init(document.getElementById('test02'));
let test3 = echarts.init(document.getElementById('test03'));

option && test1.setOption(option);
option && test2.setOption(option);
option && test3.setOption(option);

this.linkageZoom(test1,[test2,test3])

linkageZoom(test1, arr){
	test1.on('datazoom', function(params) {
		arr.forEach(item => {
			item && item.dispatchAction({ // 触发 dataZoom 事件
				type: 'dataZoom',
				zoomLock: true, // 锁定整个图表的缩放功能
				xAxisIndex: params.xAxisIndex, // xAxisIndex 为当前操作的 xAxisIndex,用于确定对应的 xAxis 对象
				yAxisIndex: params.yAxisIndex, // yAxisIndex 为当前操作的 yAxisIndex,用于确定对应的 yAxis 对象
				start: params.start, // start 为当前操作的时间范围起始值
				end: params.end // end 为当前操作的时间范围结束值
			});
		})
	})
}

代码详解: test1的数据区域缩放改变后,会带动 test2,test3的数据区域缩放一起改变,并且 test2 test3的数据区域缩放可以单独拖动改变

echarts区域缩放相关链接: https://echarts.apache.org/zh/api.html#action.dataZoom.dataZoom

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 07:14:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 07:14:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 07:14:01       87 阅读
  4. Python语言-面向对象

    2024-04-10 07:14:01       96 阅读

热门阅读

  1. 【docker】容器技术发展历史

    2024-04-10 07:14:01       34 阅读
  2. perl 交叉编译

    2024-04-10 07:14:01       40 阅读
  3. Ubuntu 20.04.06 PCL C++学习记录(二十二)

    2024-04-10 07:14:01       33 阅读
  4. 【数据结构与算法】力扣 242. 有效的字母异位词

    2024-04-10 07:14:01       39 阅读
  5. unity学习笔记 UnityWebRequest使用心得

    2024-04-10 07:14:01       42 阅读
  6. Android 在xml 布局中如何嵌套 Jetpack Compose

    2024-04-10 07:14:01       32 阅读
  7. Spring 之 IoC基于XML管理Bean

    2024-04-10 07:14:01       32 阅读
  8. 010 spring整合mybatis(事务)(xml)

    2024-04-10 07:14:01       30 阅读
  9. MySQL 建表语句详解

    2024-04-10 07:14:01       39 阅读
  10. hive-分桶-索引(初篇)

    2024-04-10 07:14:01       41 阅读
  11. Golang 实现一个简单的 RPC 服务

    2024-04-10 07:14:01       46 阅读