先给大家看图

父组件

     <el-container v-show="abscissa">
        <lineEchart
          :CPUInfoList="CPUTotalUsage"
          :Timer="Timer"
          :abscissa="abscissa"
          :ordinate="ordinate"
          :title="title[0]"
          :titleList="titleList[0]"
          :unit="unit[0]"
        ></lineEchart>
      </el-container>
  components: {
    lineEchart
  },
上面是DOM和组件注册
  CPUTotalUsage: '',
  Timer: '',
  abscissa: [],
// 折线纵轴单位
unit: ['%', 'Mbps'],
// 折线title
title: ['教师端系统指标', '其他指标', 'TOP5进程占用-CPU', 'TOP5进程占用-内存'],
    ordinate: [],
上面这些是data里面定义的数据 下面是请求到的数据
.then(res => {
        if (res.Status == 1) {
          this.dataList = res.Content
          if (this.dataList) {
            this.dataList.forEach(item => {
              if (item.Datetime == this.Timer) {
                this.CPUTotalUsage = item.CPUProcessUsage
              }
              this.abscissa.push(item.Datetime)
              this.ordinateList.CPUTotalUsage.push(item.CPUTotalUsage)
              this.ordinateList.CPUProcessUsage.push(item.CPUProcessUsage)
              this.ordinateList.MemTotalUsage.push(item.MemTotalUsage)
              this.ordinateList.MemProcessUsage.push(item.MemProcessUsage)
              this.ordinateList.GPUTotalUsage.push(item.GPUTotalUsage)
              this.ordinateList.GPUMemUsage.push(item.GPUMemUsage)
              this.ordinateList.FPS.push(item.FPS)
              this.ordinateList.NetworkRecvSpeed.push(item.NetworkRecvSpeed)
              this.ordinateList.NetworkSendSpeed.push(item.NetworkSendSpeed)
            })
            this.ordinate = [
              {
                name: '系统CPU总占用',
                data: this.ordinateList.CPUTotalUsage
              },
              {
                name: '应用CPU占用',
                data: this.ordinateList.CPUProcessUsage
              },
              {
                name: '系统内存总占用',
                data: this.ordinateList.MemTotalUsage
              },
              {
                name: '应用内存占用',
                data: this.ordinateList.MemProcessUsage
              },
              {
                name: '系统GPU总占用',
                data: this.ordinateList.GPUTotalUsage
              },
              {
                name: '系统显存总占用',
                data: this.ordinateList.GPUMemUsage
              }
            ]
          } else {
            this.loading = false
            this.showFlag = false
          }
        } else {
          this.showFlag = false
          this.$message({
            message: res.Msg,
            type: 'error'
          })
        }
      })

我们看下返回的数据都是什么

这是整个接口的返回  我们就取一些数据

这个就是子组件echarts的组件实例

<template>
  <div class="echarts" ref="echarts"></div>
</template>
<script>
import echarts from 'echarts'
import wonderland from './echarts'
export default {
  props: {
    abscissa: {
      type: Array,
      default: () => []
    },
    ordinate: {
      type: Array,
      default: () => []
    },
    title: String,
    titleList: {
      type: Array,
      default: () => []
    },
    unit: String,
    Timer: String,
    CPUInfoList: String
  },
  data() {
    return {
      chart: null,
      myChart: null,
      option: {},
      lineList: []
    }
  },
  mounted() {},
  watch: {
    abscissa(newV, oldV) {
      this.draw()
    }
  },
  methods: {
    draw() {
      this.chart = this.$refs.echarts
      this.chart.style.width = document.documentElement.clientWidth - 200 + 'px'
      this.chart.style.height = 300 + 'px'
      echarts.init(this.chart, 'wonderland').dispose()
      echarts.registerTheme('wonderland', wonderland)
      this.myChart = echarts.init(this.chart, 'wonderland')
      this.option = {
        title: {
          text: this.title
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross'
          }
        },
        legend: {
          data: this.titleList
        },
        toolbox: {
          feature: {}
        },
        grid: {
          left: '5%',
          right: '4%',
          bottom: '10%',
          containLabel: false
        },
        xAxis: [
          {
            type: 'category',
            boundaryGap: false,
            data: this.abscissa
          }
        ],
        yAxis: [
          {
            type: 'value',
            axisLabel: {
              formatter: '{value}' + this.unit
            }
          }
        ],
        dataZoom: [
          {
            type: 'slider',
            show: true,
            xAxisIndex: [0],
            start: 0,
            end: 100
          },
          {
            type: 'inside',
            xAxisIndex: [0],
            start: 0,
            end: 100
          }
        ],
        series: []
      }
      var this_ = this
      echarts.util.each(this.ordinate, function(item, index) {
        this_.option.series.push({
          name: item.name,
          type: 'line',
          showSymbol: false,
          sampling: 'average',
          data: item.data,
          markPoint: {
            symbolSize: this_.CPUInfoList ? 60 : 0,
            data: [
              {
                name: '某个坐标',
                yAxis: this_.CPUInfoList,
                xAxis: this_.Timer,
                value: '崩溃点'
              }
            ]
          }
        })
      })
      this.myChart.setOption(this.option)
      this.myChart.group = '1'
      echarts.connect('1')
      window.addEventListener('resize', () => {
        this.myChart.resize()
      })
    }
  }
}
</script>
<style lang="scss" scoped>
.echarts {
  // width: 100%;
  height: 500px;
}
</style>

echarts做折线图的更多相关文章

  1. echarts版本折线图

    1.效果如下:         绘制折线图,应该算是说echarts中使用最简单也算使用频率最高的一种功能了吧.根据官网列子能找出规律,只是有些属性对于初接触者来说,会有点陌生,不过仔细阅读一下还是不 ...

  2. Echarts line折线图使用(vue)

    实现 首先引入echarts工具 // vue文件中引入echarts工具 let echarts = require('echarts/lib/echarts') require('echarts/ ...

  3. ECharts使用—折线图动态加载

    最近需求中用到折线图,单线条,多线交错,之前是散点图,用的是另一个 amcharts.js,这个文档也能找的到,回归早本次重点:ECharts 一.首先引入echarts.common.min.js文 ...

  4. 移动端引用echarts的折线图

          移动端写一个图表引用echarts,highcharts插件,本次要找一个能够显示最新数据的折线图,最后只找到显示最大值: 找到echarts的实例:记一下个各功能.   <!DOC ...

  5. echarts实现折线图

    前端框架使用的angular,折线图使用echarts实现. 这里实现的折线图只是简单是折线图,折线图显示在table中,不需要xy轴的数据说明. 1. item.component.html < ...

  6. Echarts案例-折线图

    一:先在官网下载 https://www.echartsjs.com/zh/download.html 然后再建立工程,导入这两个包: 写代码: <!DOCTYPE html> <h ...

  7. echarts自定义折线图横坐标时间间隔踩坑总结

    折线图需求:横坐标为时间,要求按一定间隔展示,鼠标移至折线上间隔时间内的数据也可展示 其实很简单的一个配置就可搞定,但在不熟悉echarts配置的情况下,就很懵逼 xAxis: { boundaryG ...

  8. echarts之折线图介绍及使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 使用Echarts实现折线图的一点总结

    使用Echarts的一点总结 1.安装,我使用得vue cnpm install echarts --save 2.在入口文件main.js中注册,并使用 // 引入折线图 echarts impor ...

  10. ECharts绘制折线图

    首先看实现好的页面 实现 首先引入echarts工具 // vue文件中引入echarts工具 let echarts = require('echarts/lib/echarts') require ...

随机推荐

  1. 大厂面试题:ReentrantLock 与 synchronized异同点对比

    写在开头 在过去的博文中我们学习了ReentrantLock 与 synchronized这两种Java并发使用频率最高的同步锁,在很多大厂面试题中有个经典考题: ReentrantLock 与 sy ...

  2. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-39-highlight() 方法之追踪定位

    1.简介 在之前的文章中宏哥讲解和分享了,为了看清自动化测试的步骤,通过JavaScript添加高亮颜色,就可以清楚的看到执行步骤了.在学习和实践Playwright的过程中,偶然发现了使用Playw ...

  3. 【数学】主成分分析(PCA)的详细深度推导过程

    Based on Deep Learning (2017, MIT) book. 本文基于Deep Learning (2017, MIT),推导过程补全了所涉及的知识及书中推导过程中跳跃和省略的部分 ...

  4. 剑指offer21(Java)-调整数组顺序使奇数位于偶数前面(简单)

    题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分. 示例: 输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[ ...

  5. 第 2章Python 爬虫基本库的使用

    第 2章Python 爬虫基本库的使用 爬虫并没有你想象中的复杂,很多初学者一开始就担忧,比如怎么写代码去构造请求,怎么把请求发出去,怎么接收服务器的响应,需不需要学习 TCP/IP 四层模型的每一层 ...

  6. EasyNLP玩转文本摘要(新闻标题)生成

    简介: 本⽂将提供关于PEGASUS的技术解读,以及如何在EasyNLP框架中使⽤与PEGASUS相关的文本摘要(新闻标题)生成模型. 作者:王明.黄俊 导读 文本生成是自然语言处理领域的一个重要研究 ...

  7. 埃森哲携手阿里云,采用K8s容器云服务为客户提供无限弹性

    简介: 埃森哲作为全球领先的专业服务公司,在数字化.云计算等领域拥有全球领先的能力,我们在多年的实际客户项目中,找到并沉淀出了适合企业数字化转型的方法论,积累了丰富的落地经验. 作者:姚迪.周警伟 随 ...

  8. 学习 Avalonia 框架笔记 如何创建一个全屏置顶的 X11 应用窗口

    本文记录我从 Avalonia 框架里面学到如何创建一个全屏置顶的 X11 应用窗口的方法 开始之前,先从 Avalonia 或 CPF 里面拷贝足够的代码,这部分代码可以从本文末尾找到下载方法 设置 ...

  9. k8s网页访问实战

    流程: 客户端访问--->ingress七层代理---->service四层代理---->deployment 详细情况:https://www.cnblogs.com/yangme ...

  10. PostMan接口测试实用小点

    PostMan接口测试实用小点 1. 接口测试变量存取操作 在Postman中有很多地方可以存储一些变量,这里只介绍经常使用的环境变量.变量设置后,在UI界面可以通过{{变量名}}获取到对应值. 在环 ...