echarts 折现图/柱状图与饼图的联动

博客介绍了使用 ECharts 实现折线图/柱状图与饼图的联动效果,主要依赖 updateAxisPointer 事件。还提到以官方演示的折线图与饼图联动为例,若要实现柱状图与饼图联动,将折线图部分改为柱状图配置即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

echarts 实现折现图/柱状图与饼图的联动效果,主要依赖 updateAxisPointer 事件

以下例子为官方演示,以折线图与饼图联动为例,如需要柱状图与饼图联动,可将折线图部分改为柱状图配置即可

<!DOCTYPE html>
<html style="height: 100%">

<head>
  <meta charset="utf-8">
</head>

<body style="height: 100%; margin: 0">
  <div id="container" style="height: 100%"></div>
  <!-- 此处注意插件script引入 -->
  <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
  <script type="text/javascript">
    var dom = document.getElementById("container");
    var myChart = echarts.init(dom);
    var app = {};
    option = null;
    option = {
      legend: {},
      tooltip: {
        trigger: 'axis',
        showContent: false
      },
      dataset: {
        source: [
          ['product', '2012', '2013', '2014', '2015', '2016', '2017'],
          ['Matcha Latte', 41.1, 30.4, 65.1, 53.3, 83.8, 98.7],
          ['Milk Tea', 86.5, 92.1, 85.7, 83.1, 73.4, 55.1],
          ['Cheese Cocoa', 24.1, 67.2, 79.5, 86.4, 65.2, 82.5],
          ['Walnut Brownie', 55.2, 67.1, 69.2, 72.4, 53.9, 39.1]
        ]
      },
      xAxis: {
        type: 'category'
      },
      yAxis: {
        gridIndex: 0
      },
      grid: {
        top: '55%'
      },
      series: [{
          type: 'line',
          smooth: true,
          seriesLayoutBy: 'row'
        },
        {
          type: 'line',
          smooth: true,
          seriesLayoutBy: 'row'
        },
        {
          type: 'line',
          smooth: true,
          seriesLayoutBy: 'row'
        },
        {
          type: 'line',
          smooth: true,
          seriesLayoutBy: 'row'
        },
        {
          type: 'pie',
          id: 'pie',
          radius: '30%',
          center: ['50%', '25%'],
          label: {
            formatter: '{b}: {@2012} ({d}%)'
          },
          encode: {
            itemName: 'product',
            value: '2012',
            tooltip: '2012'
          }
        }
      ]
    };
    myChart.on('updateAxisPointer', function (event) {
      var xAxisInfo = event.axesInfo[0];
      if (xAxisInfo) {
        var dimension = xAxisInfo.value + 1;
        myChart.setOption({
          series: {
            id: 'pie',
            label: {
              formatter: '{b}: {@[' + dimension + ']} ({d}%)'
            },
            encode: {
              value: dimension,
              tooltip: dimension
            }
          }
        });
      }
    });
    myChart.setOption(option);
  </script>
</body>

</html>

 

你可以使用 ECharts 和 Vue 3 来实现柱状图的定时联动。首先,你需要安装并引入 ECharts 和 Vue 3 的相关依赖。 接下来,你可以创建一个 Vue 组件来显示柱状图,并使用定时器来更新数据。以下是一个简单的示例代码: ```vue <template> <div> <div ref="barChart" style="width: 600px; height: 400px;"></div> <div ref="pieChart" style="width: 600px; height: 400px;"></div> </div> </template> <script> import * as echarts from 'echarts'; export default { data() { return { barChart: null, pieChart: null, barData: [], // 柱状图数据 pieData: [] // 数据 }; }, mounted() { // 初始化柱状图 this.barChart = echarts.init(this.$refs.barChart); this.pieChart = echarts.init(this.$refs.pieChart); // 定时更新数据 setInterval(() => { this.updateData(); }, 5000); // 初始化数据 this.updateData(); }, methods: { updateData() { // 模拟异步获取数据 setTimeout(() => { // 更新柱状图数据 this.barData = [ { name: 'A', value: Math.random() * 100 }, { name: 'B', value: Math.random() * 100 }, { name: 'C', value: Math.random() * 100 } ]; // 更新数据 this.pieData = [ { name: 'A', value: Math.random() * 100 }, { name: 'B', value: Math.random() * 100 }, { name: 'C', value: Math.random() * 100 } ]; // 更新柱状图 this.barChart.setOption({ xAxis: { data: this.barData.map(item => item.name) }, series: [{ data: this.barData.map(item => item.value) }] }); // 更新 this.pieChart.setOption({ series: [{ data: this.pieData }] }); }, 500); } } }; </script> ``` 在上面的示例代码中,我们使用了 ECharts 的 `init` 方法来初始化柱状图,并使用定时器来更新数据。在 `updateData` 方法中,我们模拟异步获取数据,并根据数据更新柱状图。 注意,上面的示例代码是一个简单的示例,你可以根据自己的需求修改和扩展。同时,你需要根据实际情况安装和引入正确的 ECharts 和 Vue 3 的相关依赖。 希望能帮到你!如有其他问题,请继续提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值