echarts图形数据过多自动滚动(赋代码)

7 篇文章 0 订阅

因项目使用echarts数据过多自己滚动

效果如下:
在这里插入图片描述
代码如下:

<template>
	<div id="echarts" style="width: 500px; height: 400px"></div>
</template>
<script>
import echarts from "echarts";

export default {
  name: "",
  data() {
    return {

    };
  },
  created() {

  },
  mounted() {
    this.customElements();
  },
  methods: {
    customElements() {
      var myChart = echarts.init(document.getElementById("echarts"));
      var KSMC = [100, 82, 80, 70, 65, 66, 60, 54, 50, 42, 40];
      var option = {
        color: ["#3398DB"],
        tooltip: {
          trigger: "axis",
          axisPointer: {
            // 坐标轴指示器,坐标轴触发有效
            type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
          },
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true,
        },
         xAxis: {
          //坐标轴类型(类目轴)
          name: "",
          type: "value",
          //坐标轴两边留白策略
          boundaryGap: true,
          //是否显示坐标轴刻度
          axisTick: { show: false },
          //坐标轴线线的颜色
          axisLine: {
            show: true,
            lineStyle: {
              color: "#fff",
              opacity: 0.1,
            },
          },
          axisLabel: {
            show: true,
            formatter: function (value, index) {
              var value;
              // if判断转换值
              return value;
            },
          },
          //是否显示网格线。默认数值轴显示
          splitLine: {
            show: true,
            //颜色线宽
            lineStyle: {
              color: "#fff",
              opacity: 0.1,
            },
          },
        },
         legend: {
          show: true,
          type: "plain", //scroll滚动图例
          data: ["数量"], //图裂名称(需填写)
          top: "10%",
          textStyle: {
            color: "#ffffff",
          },
        },
        dataZoom: [
          //滑动条
          {
            yAxisIndex: 0, //这里是从X轴的0刻度开始
            show: false, //是否显示滑动条,不影响使用
            type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件
            startValue: 0, // 从头开始。
            endValue: 3, // 一次性展示6个。
          },
        ],
        yAxis: [
          {
            type: "category",
            inverse: true, //是否是反向坐标轴
            data: ["Mon","Tue","Wed","Thu","Fri","Sat","Sun","测试","测试1","测试2","测试3",],
             axisLabel: {
            show: true,
            formatter: function (value, index) {
              var value;
              // if判断转换值
              return value;
            },
          },
          //是否显示分隔线。默认数值轴显示
          splitLine: {
            show: true,
            lineStyle: {
              color: "#fff",
              opacity: 0.1,
            },
          },
          axisTick: { show: false },
          //坐标轴线线的颜色
          axisLine: {
            show: true,
            lineStyle: {
              color: "#fff",
              opacity: 0.1,
            },
          },
          },

        ],
        series: [
          {
            name: "直接访问",
            type: "bar",
            barWidth: "60%",
            data: KSMC,
          },
        ],
      };
      myChart.setOption(option);
	  //自动滚动
      this.timeOut=setInterval(()=>{
        if (option.dataZoom[0].endValue == KSMC.length ) {
          option.dataZoom[0].endValue = 3;
          option.dataZoom[0].startValue = 0;
        } else {
          option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;
          option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;
        }
        myChart.setOption(option);
      },2000)
    },
  },
};
</script>
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
您可以使用 echarts 提供的数据区域缩放和滚动功能来实现折线图滚动效果。以下是一个示例代码,演示了如何在 echarts 中实现折线图滚动: ```javascript // 初始化echarts实例 var myChart = echarts.init(document.getElementById('chart')); // 模拟数据 var dataX = []; var dataY = []; for (var i = 0; i < 1000; i++) { dataX.push('data' + i); dataY.push(Math.random() * 100); } // 指定图表的配置项和数据 var option = { xAxis: { type: 'category', data: dataX, boundaryGap: false, // 去除边界空白 axisLabel: { interval: function (index, value) { // 控制横轴标签显示间隔,可根据需求调整 return index % 50 === 0 ? true : false; } } }, yAxis: { type: 'value' }, dataZoom: [ { // 数据区域缩放 type: 'inside', start: 0, end: 100 }, { // 滚动条 type: 'slider', show: true, start: 0, end: 100, height: 15, bottom: 10 } ], series: [{ name: '折线图', type: 'line', smooth: true, data: dataY }] }; // 使用刚指定的配置项和数据显示图表 myChart.setOption(option); ``` 在上述代码中,首先通过 `echarts.init` 方法初始化了一个 echarts 实例,并指定了图表要渲染到的容器。 然后,根据需求构建了 x 轴和 y 轴的配置项,并在 x 轴上设置了 `boundaryGap: false`,这样可以去除横轴两端的空白。 接下来,使用 `dataZoom` 配置项来定义数据区域缩放和滚动条。其中,`type: 'inside'` 表示数据区域缩放,`type: 'slider'` 表示滚动条。通过设置 `start` 和 `end` 属性来控制显示的数据范围。 最后,使用 `setOption` 方法将配置项应用于图表实例,从而显示出折线图。 您可以根据实际需求调整各个配置项的数值和样式,以满足您的需求。希望对您有帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的誓言°变失言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值