Echarts 用来做可视化曲线是非常优秀的一个库。建议使用 Echarts 作为项目的可视化图标库时,仔细研究 官方实例,根据需求来选择类似的示例,下载实例模板来开发,节省时间,减少出错,提高效率。

最近在项目中遇到了一个棘手的问题:

1. 在图表中要显示多条曲线

2. 每一条曲线的横坐标(时间轴)的时间点不一定相同

对于单条曲线,时间不同的话,时间点就会比总时间点少,这时,只在对应的时间上显示点,然后连线。

首先说明解决方法(以两条曲线为例):

1. 获取到全部时间,作为横坐标的数据。也就是 xAxis.data 的值。如 xAxis.data = ["10:00:00", "11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00"]

2. 在各条曲线上,它们的值采用数组类型,也就是 series.data 的值。 如 series.data[0] = [['10:00:00', '120'], ['12:00:00', '132'], ['14:00:00', '101']],series.data[1] = [['11:00:00', '220'], ['13:00:00', '132'], ['15:00:00', '201']]

上面例子展示了横坐标一共有六个点,第一条曲线只在第 1、3、5 个上有值,第二条曲线只在第 2、4 、6 个点上有值,这个时候需要注意一点的是,series.data 值的数组的第一个值要和 xAxis.data 数组中的值能对应上,不然不能绘制曲线。

下面详细说明:

一、该项目用到的框架是 Angular ,在 Angular 中使用 Echarts ,首先要先引入 Echarts 库

1. 在静态资源文件 assets 中新建一个脚本文件夹 scripts 里面存放 echarts.min.js

2. 在 Angular CLI 配置文件 .angular-cli.json 中 ["apps"]["scripts"] 中引入这个脚本

二、在需要使用的组件中先声明 echarts

declare const echarts: any;

三、绘制曲线(参考示例:Echarts 堆叠线

/*绘制曲线*/
curvePlotting() {
let detectRecordCurveContainer = document.getElementById("detectRecordCurveContainer"); // 获取到绘制曲线的容器
let myChart = echarts.init(detectRecordCurveContainer); // 初始化 const DetectRecordCurveInfo = {
title: {
text: this.getTitleTextData(), // 选择的项目名称,该图表的标题
textStyle: {
color: '#333',
fontWeight: 'normal',
fontSize: 18
},
left: 'center'
},
tooltip: {
trigger: 'axis'
},
legend: {
type: 'scroll', // 当检测属性过多时,水平滚动
bottom: 0,
data: this.getLegendData() // 各条曲线的名称,数组类型
},
grid: {
left: 60, // 比css中padding-left多40px
right: 60, // 比css中padding-right多40px
bottom: 40,
containLabel: true
},
toolbox: {
right: 30, // 设置'保存图片'文本的位置
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.getTimeData() // 横坐标,时间
},
yAxis: {
type: 'value'
},
series: this.getSeries() // 曲线的点
};
if (DetectRecordCurveInfo && typeof DetectRecordCurveInfo === "object") { // 如果获取到了数据且数据是对象,DetectRecordCurveInfo 是父组件传来的可用的数据信息
myChart.setOption(DetectRecordCurveInfo, true);
}
}

Echarts 多曲线“断点”问题解决方法的更多相关文章

  1. win7中VS2010中安装CSS3.0问题解决方法

    win7中VS2010中安装CSS3.0问题解决方法   在安装Standards Update for VS2010 SP1后,VS2010中没有CSS3.0问题,以下是我的解决方法 1.首先去官网 ...

  2. win8安装SQL Server 2005问题解决方法

    win8安装SQL Server 2005问题解决方法 1.正常安装任一版本的SQL Server 2005(最好安装企业版). 2.安装到SqlServer服务的时候提示启动服务失败(提示重试的时候 ...

  3. Eclipse断点调试方法

    1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止. 条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才 ...

  4. WingIDE中文乱码问题解决方法

    WingIDE中文乱码问题解决方法 安装完WingIDE后,首次运行python脚本时,若脚本中含有UTF-8中文,在Debug I/O输出框中,全部变成了乱码. 这时其实我们设置下WingIDE的编 ...

  5. PHP mkdir()无写权限的问题解决方法

    这篇文章主要介绍了PHP mkdir()无写权限的问题解决方法,对umask做了详细解释以及mkdir()后没写权限的解决方法,需要的朋友可以参考下   使用mkdir创建文件夹时,发现这个函数有两个 ...

  6. 【转】asp.net Cookie值中文乱码问题解决方法

    来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqia ...

  7. wampserver下打开phpMyAdmin出现403错误的问题解决方法

    图1 图2 wamp下打开phpMyAdmin出现403错误的问题解决方法安装完wamp后打开其下的phpMyAdmin也就是路径http://localhost/phpmyadmin/ 出现[图一] ...

  8. Spring3 报org.aopalliance.intercept.MethodInterceptor问题解决方法

    原文:Spring3 报org.aopalliance.intercept.MethodInterceptor问题解决方法 一 开发环境:JDK5+Spring3.0.5+Myeclipse6.6+T ...

  9. virtualbox共享文件夹无访问权限问题解决方法

    virtualbox共享文件夹无访问权限问题解决方法 早就困扰了,这次新装虚拟机又碰到了,记录下来. 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题的原因是不跟v ...

随机推荐

  1. JBoss 实战(2)

    转自:https://www.cnblogs.com/aiwz/p/6154591.html JBOSS HTTP的Thread Group概念 JBOSS是一个企业级的J2EE APP Contai ...

  2. 【转】通过CountDownLatch提升请求处理速度

    countdownlatch是java多线程包concurrent里的一个常见工具类,通过使用它可以借助线程能力极大提升处理响应速度,且实现方式非常优雅.今天我们用一个实际案例和大家来讲解一下如何使用 ...

  3. 应用层协议FTP、DNS协议、HTTP协议分析

    分析所用软件下载:Wireshark-win32-1.10.2.exe 一.阅读导览 1.分析FTP协议 2.分析DNS协议 3. 分析HTTP协议 二.分析要求 (1)ftp部分: 学习 Serv- ...

  4. 浅谈JVM-图解类加载机制

    一.目录 二.类加载机制流程 1.什么是类加载机制? JVM把class文件加载到内存里面,并对数据进行校验.准备.解析和初始化,最终能够被形成被JVM可以直接使用的Java类型的过程. 2.类加载流 ...

  5. python中深浅拷贝

    python的复制,深拷贝和浅拷贝的区别   在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一 ...

  6. 【代码笔记】iOS-cell自动变化大小

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  7. ifconfig命令无法找到,提示bash: ifconfig: command not found

    问题就是题目那样,具体解决方法截图如下: 分析问题 1.whereis ifconfig 看一下这个命令在哪个目录下 2.echo $PATH 看一下该目录是否在路经下,注意lunux下是完全区分大小 ...

  8. html5中高德、腾讯、百度 地图api调起手机app

    html 部分 <div id="mapBg"> <div class="mapTab"> <a href="" ...

  9. html--对URL传参数进行解析

    跳转页面需要传参数到另外一个html页面,跳转链接可写一个js的function function doView(articleId) { window.location.href ="co ...

  10. python简单验证码

    安装图片处理模块pillow :   pip install pillow pillow官网:http://pillow.readthedocs.io/en/latest/ 在views.py添加视图 ...