zoukankan      html  css  js  c++  java
  • echarts做折线图

    先给大家看图

     父组件

         <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 {
      //  100%;
      height: 500px;
    }
    </style>

     

     

     

     

     

     

    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    zoj 3627 Treasure Hunt II (贪心)
    1028
    DB2数据库性能优化介绍
    Python之美[从菜鸟到高手]--深刻理解原类(metaclass)
    Java和C++中多态的实现方式
    汉语-词语-停留:百科
    汉语-词语-体会:百科
    汉语-词语-味道:百科
    笔记-生活-饮食:香料妙用
    汉语-词语-香料:百科
  • 原文地址:https://www.cnblogs.com/ht955/p/15256739.html
Copyright © 2011-2022 走看看