【曹操】echarts多指标折线动态加载问题

简介: 曹操系统提供的平台性能展示功能,其中包含多平台单一性能展示、单平台多项性能展示、历史性能展示(单平台多项性能展示)及网络性能展示(单笔通话多项指标展示),这四种性能展示功能都是多指标多条折线展示,最多包含14项指标。

之前的方式是参照echarts官方提供的js模板写option并setoption,但是该方法以series写死的方式将所有指标穷举出来,每个展示的功能需要单独写一个js,这使得前端js代码冗余且可复用性降低,每个js针对所有的指标展示嵌套了很多if循环,使得js加载的时候会有效率问题,在页面展示方面,每次查询会将所有的指标在图例及提示框显示出来,即使查询时选取的指标参数并不是全部指标,让页面展示缺少简洁感。因此决定对图形展示的js进行优化,让代码的适用性更高。

1、理解echarts的绘图原理,结合数据特性理清思路

简单的说,echarts绘图时需要x轴数据,和对应的y轴数据,然后填点连线,对于曹操的展示功能中,x轴固定为时间,可以从返回的json数据中获取到并赋值到angularjs域里的name变量,针对于多指标项,通过循环每次将每个指标数据存放在term_son数组中,再将每个term_son放在 term数组中,实现数据展示时,循环term设置option的series项,这样就可以避免在js中出现写死的指标项,全部通过变量实现图形绘制。


2、具体代码

1)option配置
var option = {
    title: {//标题
        text: ectitle,
         x: 'center'
    },
        legend: {//图例
        left:'right',
        data: $scope.key
    },
    tooltip: {//提示框组件
        trigger: 'axis',
        axisPointer: {
        animation: false
            },
            textStyle: {
              fontStyle: 'italic',
              fontSize: 12
        }
    },
    xAxis: {//x轴
        type: 'category',
        splitLine: {
            show: false
        },
        data: $scope.name
    },
        yAxis: {//y轴数据
        type: 'value',
        splitLine: {
            show: false
        }
    },
    series: []//series项
};
2)series项设置
for(i =0; i < $scope.key.length; i++){
    var item = {
          name: $scope.key[i],//指标名称
          type: 'line',
          showSymbol: false,
          hoverAnimation: false,
          data: $scope.term[i]//指标数据
    }
    option.series.push(item);
};

chart.clear();
chart.setOption(option);

目录
相关文章
|
移动开发 数据可视化 前端开发
Echarts的使用以及动态加载数据
Echarts的使用以及动态加载数据
10374 0
Echarts的使用以及动态加载数据
|
23天前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
48 1
|
19天前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
108 0
|
2月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
3月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
429 1
微信小程序使用echarts图表(ec-canvas)
|
3月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
3月前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
3月前
Echarts——如何默认选中图表并显示tooltip
Echarts——如何默认选中图表并显示tooltip
54 1
|
3月前
|
JavaScript
Echarts——VUE中非根节点时不显示图表也无报错
Echarts——VUE中非根节点时不显示图表也无报错
37 1