ECharts 横向柱状图自动滚动

该代码示例展示了如何利用Echarts库创建一个条形图,并配置数据窗口滚动功能。数据窗口每次向后滚动一个单位,当到达末尾时重新从头开始。这有助于在有限的视图中查看大量数据。

核心代码

const seriesList = [120, 200, 150, 80, 70, 110, 130, 120, 200, 150, 120, 200];
const xAxisList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
const dataZoomEndValue = 6; // 数据窗口范围的结束数值(一次性展示几个)
dataZoom: [
  {
    show: false, // 是否显示滑动条
    xAxisIndex: 0, // 这里是从X轴的0刻度开始
    startValue: 0, // 数据窗口范围的起始数值
    endValue: dataZoomEndValue // 数据窗口范围的结束数值(一次性展示几个)
  }
],
if (xAxisList.length > 0 && seriesList.length > 0) {
  setInterval(function () {
    // 每次向后滚动一个,最后一个从头开始
    if (option.dataZoom[0].endValue === xAxisList.length) {
      option.dataZoom[0].startValue = 0; // 数据窗口范围的起始数值
      option.dataZoom[0].endValue = dataZoomEndValue; // 数据窗口范围的结束数值
    } else {
      option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1; // 数据窗口范围的起始数值
      option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1; // 数据窗口范围的结束数值
    }
    myChart.setOption(option);
  }, 2000);
}

完整代码:

import * as echarts from 'echarts';

const chartDom = document.getElementById('main');
const myChart = echarts.init(chartDom);

const seriesList = [120, 200, 150, 80, 70, 110, 130, 120, 200, 150, 120, 200];
const xAxisList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
const dataZoomEndValue = 6; // 数据窗口范围的结束数值(一次性展示几个)

const option = {
  xAxis: {
    type: 'category',
    data: xAxisList
  },
  yAxis: {
    type: 'value'
  },
  dataZoom: [
    {
      show: false, // 是否显示滑动条
      xAxisIndex: 0, // 这里是从X轴的0刻度开始
      startValue: 0, // 数据窗口范围的起始数值
      endValue: dataZoomEndValue // 数据窗口范围的结束数值(一次性展示几个)
    }
  ],
  series: [
    {
      type: 'bar',
      showBackground: true,
      backgroundStyle: {
        color: 'rgba(180, 180, 180, 0.2)'
      },
      data: seriesList
    }
  ]
};
if (xAxisList.length > 0 && seriesList.length > 0) {
  setInterval(function () {
    // 每次向后滚动一个,最后一个从头开始
    if (option.dataZoom[0].endValue === xAxisList.length) {
      option.dataZoom[0].startValue = 0; // 数据窗口范围的起始数值
      option.dataZoom[0].endValue = dataZoomEndValue; // 数据窗口范围的结束数值
    } else {
      option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1; // 数据窗口范围的起始数值
      option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1; // 数据窗口范围的结束数值
    }
    myChart.setOption(option);
  }, 2000);
}

option && myChart.setOption(option);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值