IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Echarts中series循环添加接口数据data带自适应(源码) -> 正文阅读

[JavaScript知识库]Echarts中series循环添加接口数据data带自适应(源码)

 var series = [];
      var finishTime = [];
      for (var i = 0, len = this.newList.length; i < len; i++) {
        //  for循环语法结构 注意这个带有,
        finishTime.push(this.newList[i].finishTime); //  这里是时间获取时间数据
        series.push({
          name: this.newList[i].volume,
          type: "line",
          smooth: true,
          label: {
            normal: {
              show: true,
              position: "top",
              color: "#424242",
              fontSize: 12,
            },
          },
          data: [
            this.newList[i].open,
            this.newList[i].close,
            this.newList[i].height,
            this.newList[i].low,
            this.newList[i].avg,
          ],
        });
      }

1.首先定义变量

var series = [];
var finishTime = [];

2.根据后台查询出来的数据循环添加到变量中

 var series = [];
      var finishTime = [];
      for (var i = 0, len = this.newList.length; i < len; i++) {
        //  for循环语法结构 注意这个带有,
        //  这里是时间获取时间数据
        finishTime.push(this.newList[i].finishTime); 
        series.push({
          name: this.newList[i].volume,
          type: "line",
          smooth: true,
          label: {
            normal: {
              show: true,
              position: "top",
              color: "#424242",
              fontSize: 12,
            },
          },
          data: [
            this.newList[i].open,
            this.newList[i].close,
            this.newList[i].height,
            this.newList[i].low,
            this.newList[i].avg,
          ],
        });
      }

3.赋值到Echarts的series属性中

var option = {
        title: {
          text: "添加标题",
          subtext: "副标题",
          left: "left",
        },
        xAxis: {
          type: "category",
          // data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          data: finishTime,                        //  1.这里是赋值获取时间数据!!!!!!!!!
        },
        yAxis: {
          type: "value",
          axisLine: {
            show: true,
          },
        },
        legend: {
          //  这个必须要有,如果需要最上面'图例'的话就加,里面也要有data不需要就删掉
          // data: finishTime,  // series里面写name这里可以注释掉,写上会提示重复渲染打印台
        },
        // series: [    //  这是初始化样子
        //   {
        //     name: 'volume',
        //     type: "line",
        //     // stack: "Total",
        //     data: [120, 132, 101, 134, 90, 230, 210],
        //   },
        // ],
        series: series, //  2.这里是赋值给series数据!!!!!!!!!!!!!!!!!!!
      };

4.源码复制编译器即可查看修改

<template>
  <div class="echart">
    <!-- 先创建一个div容器,我用的是ref,可以用id去获取容器 -->
    <div
      ref="chart1"
      id="main_basicLine main_basicLine2"
      style="width: 100%; height: 400px"
    ></div>
  </div>
</template>

 <script>
let myChart5 = null; //  这里js代表全局块引入,或者写入data,每个都要加this.myChart5
export default {
  data() {
    return {
      newList: [
        //  这个数组,我是从接口复制过来放进去的,这样容易看,小技巧~~~,若是接口就直接请求接口 this.newList = res.data 这样即可
        {
          nftTypeId: "0xd40c03b8680d4b6a4d78fc3c6f6a28c854e94a79",
          startTime: "2022-03-04T05:23:15Z",
          endTime: "2022-03-04T05:23:42Z",
          finishTime: "2022-03-04T05:24:01.051Z",
          enumKLine: 0,
          open: 60,
          close: 3220,
          height: 3295,
          low: 3220,
          avg: 357.5,
          volume: 213,
          totalPrice: 700710,
          id: "6221a271856e88c08f1cbf7e",
          objectId: {
            timestamp: 1646371441,
            machine: 8744584,
            pid: -16241,
            increment: 1884030,
            creationTime: "2022-03-04T05:24:01Z",
          },
        },
        {
          nftTypeId: "0xd40c03b8680d4b6a4d78fc3c6f6a28c854e94a79",
          startTime: "2022-03-04T05:22:06Z",
          endTime: "2022-03-04T05:22:51Z",
          finishTime: "2022-03-04T05:23:01.416Z",
          enumKLine: 0,
          open: 320,
          close: 3260,
          height: 320,
          low: 3150,
          avg: 319.5,
          volume: 56,
          totalPrice: 180840,
          id: "6221a235856e88c08f1cbf6e",
          objectId: {
            timestamp: 1646371381,
            machine: 8744584,
            pid: -16241,
            increment: 1884014,
            creationTime: "2022-03-04T05:23:01Z",
          },
        },
        {
          nftTypeId: "0xd40c03b8680d4b6a4d78fc3c6f6a28c854e94a79",
          startTime: "2022-03-04T05:21:24Z",
          endTime: "2022-03-04T05:21:30Z",
          finishTime: "2022-03-04T05:22:01.401Z",
          enumKLine: 0,
          open: 20,
          close: 200,
          height: 300,
          low: 3140,
          avg: 370,
          volume: 24,
          totalPrice: 76680,
          id: "6221a1f9856e88c08f1cbf5b",
          objectId: {
            timestamp: 1646371321,
            machine: 8744584,
            pid: -16241,
            increment: 1883995,
            creationTime: "2022-03-04T05:22:01Z",
          },
        },
        {
          nftTypeId: "0xd40c03b8680d4b6a4d78fc3c6f6a28c854e94a79",
          startTime: "2022-03-04T05:20:21Z",
          endTime: "2022-03-04T05:20:21Z",
          finishTime: "2022-03-04T05:21:01.398Z",
          enumKLine: 0,
          open: 3199,
          close: 3300,
          height: 3300,
          low: 800,
          avg: 320,
          volume: 20,
          totalPrice: 660000,
          id: "6221a1bd856e88c08f1cbf4e",
          objectId: {
            timestamp: 1646371261,
            machine: 8744584,
            pid: -16241,
            increment: 1883982,
            creationTime: "2022-03-04T05:21:01Z",
          },
        },
        {
          nftTypeId: "0xd40c03b8680d4b6a4d78fc3c6f6a28c854e94a79",
          startTime: "2022-03-04T05:19:57Z",
          endTime: "2022-03-04T05:19:57Z",
          finishTime: "2022-03-04T05:20:02.057Z",
          enumKLine: 0,
          open: 98,
          close: 199,
          height: 5199,
          low: 699,
          avg: 99,
          volume: 3,
          totalPrice: 9597,
          id: "6221a182856e88c08f1cbf42",
          objectId: {
            timestamp: 1646371202,
            machine: 8744584,
            pid: -16241,
            increment: 1883970,
            creationTime: "2022-03-04T05:20:02Z",
          },
        },
      ],
    };
  },
  props: ["chartData"],
  mounted() {
    //获取div容器
    let chart1 = this.$refs.chart1;
    myChart5 = this.$echarts.init(chart1);
    //监听窗口的变化,不想屏幕自适应可以不写
    window.addEventListener("resize", function () {
      myChart5.resize();
    });

    this.drawLine();
  },
  methods: {
    drawLine() {
      var series = [];
      var finishTime = [];
      for (var i = 0, len = this.newList.length; i < len; i++) {
        //  for循环语法结构 注意这个带有,
        finishTime.push(this.newList[i].finishTime); //  这里是时间获取时间数据
        series.push({
          name: this.newList[i].volume,
          type: "line",
          smooth: true,
          data: [
            this.newList[i].open,
            this.newList[i].close,
            this.newList[i].height,
            this.newList[i].low,
            this.newList[i].avg,
          ],
        });
      }

      var option = {
        title: {
          text: "添加标题",
          subtext: "副标题",
          left: "left",
        },
        xAxis: {
          type: "category",
          // data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          data: finishTime,                        //  1.这里是赋值获取时间数据!!!!!!!!!
        },
        yAxis: {
          type: "value",
          axisLine: {
            show: true,
          },
        },
        legend: {
          //  这个必须要有,如果需要最上面'图例'的话就加,里面也要有data不需要就删掉
          // data: finishTime,  // series里面写name这里可以注释掉,写上会提示重复渲染打印台
        },
        // series: [    //  这是初始化样子
        //   {
        //     name: 'volume',
        //     type: "line",
        //     // stack: "Total",
        //     data: [120, 132, 101, 134, 90, 230, 210],
        //   },
        // ],
        series: series, //  2.这里是赋值给series数据!!!!!!!!!!!!!!!!!!!
      };
      // 使用刚指定的配置项和数据显示图表。
      //防止越界,重绘canvas
      window.onresize = myChart5.resize;
      myChart5.setOption(option);
    },
  },
};
</script>

<style scoped>
</style>

5.效果如下图

在这里插入图片描述

参考:https://www.cnblogs.com/chuanqi1995/p/11387423.html

感觉文章好的话记得点个心心和关注,有错的地方麻烦在评论区指正一下,多谢!!!

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 12:53:24  更:2022-03-06 12:56:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:39:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码