echart不同div中的双表联动

简介: echart下的不同div中的双表联动

先上效果图:

793a2eff4d634bc5917ca70f7c0e8469.gif

如图,通过点击右侧div中的柱体,修改左侧多组折线图中的第一条数据。柱体和多组折线图表都是echart官网标准图例未做修改,各位可以根据自己的需求去做样式这里就不多说了,下面我们说正题。
要实现不同div中的echart图表联动,可以使用echarts提供的setOption方法,通过在某个图表上选中某个数据项时,更新另一个图表的数据。
具体代码如下:

html部分:
这部分主要是用来展示图表,可以随便改。

  <div style="display: flex">
    <div id="lineChart" style="height: 500px;width: 1000px"></div>
    <div id="barChart" style="height: 500px;width: 1000px;"></div>
  </div>

js部分:

      // 初始化柱图
      const barChart = echarts.init(document.getElementById('barChart'));
      // 配置柱图的option
      let barOption = {
   
   
        xAxis: {
   
   
          type: 'category',
          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
        yAxis: {
   
   
          type: 'value'
        },
        series: [
          {
   
   
            data: [1120, 2100, 300, 1180, 710, 600, 1130],
            type: 'bar'
          }
        ]
      };
      //设置echart实例的配置项
      barChart.setOption(barOption);
      //自适应
      window.addEventListener("resize", function () {
   
   
        barChart.resize();
      });

      // 初始化折线图
      const lineChart = echarts.init(document.getElementById('lineChart'));
      // 配置折线图的option
      //这部分配置看不清的可以翻翻我之前的echart配置博客
      const lineOption = {
   
   
        title: {
   
   
          text: 'Stacked Line'
        },
        tooltip: {
   
   
          trigger: 'axis'
        },
        legend: {
   
   
          data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
        },
        grid: {
   
   
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        toolbox: {
   
   
          feature: {
   
   
            saveAsImage: {
   
   }
          }
        },
        xAxis: {
   
   
          type: 'category',
          boundaryGap: false,
          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
        yAxis: {
   
   
          type: 'value'
        },
        series: [
          {
   
   
            name: 'Email',
            type: 'line',
            stack: 'Total',
            data: [120, 132, 101, 134, 90, 230, 210]
          },
          {
   
   
            name: 'Union Ads',
            type: 'line',
            stack: 'Total',
            data: [220, 182, 191, 234, 290, 330, 310]
          },
          {
   
   
            name: 'Video Ads',
            type: 'line',
            stack: 'Total',
            data: [150, 232, 201, 154, 190, 330, 410]
          },
          {
   
   
            name: 'Direct',
            type: 'line',
            stack: 'Total',
            data: [320, 332, 301, 334, 390, 330, 320]
          },
          {
   
   
            name: 'Search Engine',
            type: 'line',
            stack: 'Total',
            data: [120, 132, 101, 134, 290, 130, 120]
          }
        ]
      };
      lineChart.setOption(lineOption);
      window.addEventListener("resize", function () {
   
   
        lineChart.resize();
      });

      // 监听柱图的点击事件,更新折线图的数据
      barChart.on('click', function(params) {
   
   
        // 根据点击的柱子的数据项,计算出对应的新数据
        lineOption.series[0].data[0] = params.data;
        //给折线图设置新的option设置
        lineChart.setOption(lineOption);
      });

数据随便写的,可以根据业务做接口获取或修改。注意要引入echarts依赖!

目录
相关文章
|
JavaScript
Layui 弹层组件 - 基础参数3
Layui 弹层组件 - 基础参数3
73 0
|
6月前
|
前端开发 Java
layui结合ajax实现下拉联动效果
layui结合ajax实现下拉联动效果
|
6月前
|
前端开发 Java
layui结合ajax实现下拉菜单联动效果
layui结合ajax实现下拉菜单联动效果
|
4月前
|
开发框架 JavaScript 前端开发
循序渐进BootstrapVue,开发公司门户网站(4)--- 使用b-carousel-slide组件实现图片轮播以及vue-awesome-swiper实现图片滑动展示
循序渐进BootstrapVue,开发公司门户网站(4)--- 使用b-carousel-slide组件实现图片轮播以及vue-awesome-swiper实现图片滑动展示
|
6月前
|
前端开发 容器
layui使用模板渲染数据
layui使用模板渲染数据
|
前端开发 JavaScript 容器
Echarts实战案例代码(31):模态框弹出层无法正常显示echarts图表的解决方案
Echarts实战案例代码(31):模态框弹出层无法正常显示echarts图表的解决方案
257 1
|
6月前
|
JavaScript
uniapp用picker实现自定义三级联动(children)
uniapp用picker实现自定义三级联动(children)
125 0
|
12月前
|
前端开发 Java
使用layui快速渲染表格
使用layui快速渲染表格
74 0
Layui 弹层组件 - 基础参数2
Layui 弹层组件 - 基础参数2
62 0
|
容器
Echarts实战案例代码(50):tooltip组件提示框被div折叠的解决方案
Echarts实战案例代码(50):tooltip组件提示框被div折叠的解决方案
171 0