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依赖!

目录
相关文章
146Echarts - 矩形树图(Basic Treemap)
146Echarts - 矩形树图(Basic Treemap)
785 0
|
11月前
|
人工智能 自然语言处理 达摩院
2025年12月,中国数字人平台介绍与全栈技术驱动及技术指南
2025年,数字人迈向“能力拟人”新阶段,从形象展示进化为具备感知与决策的智能体。选型需超越外观,聚焦交互效率、安全合规、行业适配与持续运营,打造真正可落地的数字化生产力。
|
自然语言处理 Java 程序员
编程小趣文:Python与Java名字的起源由来
编程小趣文:Python与Java名字的起源由来
678 1
|
前端开发 Cloud Native Java
通过el-tree自定义渲染网页版工作目录,实现鼠标悬浮显示完整名称、用icon区分文件和文件夹等需求
el-tree用来做前端的文档目录还是挺好用的,尤其是自带的node-click事件,真的给后续功能的实现提供了很多帮助,其他的事件方法也很全面,用起来还是很舒服的。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
5007 0
|
缓存 JavaScript UED
vue的动态组件 keep-alive
【10月更文挑战第6天】
558 3
|
JavaScript
vue中echarts实现双图联动展示数据,折线图+饼图(附带源码)
最近写项目,有一块功能需要使用双图进行联动的展示,左边折线图,鼠标移动折线图焦点,能把每个点的数据情况展示到饼图上,这里记录一下,希望对大家有帮助
1712 0
vue中echarts实现双图联动展示数据,折线图+饼图(附带源码)
|
JavaScript
Vue.js 中父组件调用子组件的方法
Vue.js 中父组件调用子组件的方法
1419 2
|
编译器 Android开发
Android S内置APK时AndroidManifest使用uses-library编译报错
Android S内置APK时AndroidManifest使用uses-library编译报错
1311 0