Echarts 多曲线“断点”问题解决方法
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 多曲线“断点”问题解决方法的更多相关文章
- win7中VS2010中安装CSS3.0问题解决方法
win7中VS2010中安装CSS3.0问题解决方法 在安装Standards Update for VS2010 SP1后,VS2010中没有CSS3.0问题,以下是我的解决方法 1.首先去官网 ...
- win8安装SQL Server 2005问题解决方法
win8安装SQL Server 2005问题解决方法 1.正常安装任一版本的SQL Server 2005(最好安装企业版). 2.安装到SqlServer服务的时候提示启动服务失败(提示重试的时候 ...
- Eclipse断点调试方法
1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止. 条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才 ...
- WingIDE中文乱码问题解决方法
WingIDE中文乱码问题解决方法 安装完WingIDE后,首次运行python脚本时,若脚本中含有UTF-8中文,在Debug I/O输出框中,全部变成了乱码. 这时其实我们设置下WingIDE的编 ...
- PHP mkdir()无写权限的问题解决方法
这篇文章主要介绍了PHP mkdir()无写权限的问题解决方法,对umask做了详细解释以及mkdir()后没写权限的解决方法,需要的朋友可以参考下 使用mkdir创建文件夹时,发现这个函数有两个 ...
- 【转】asp.net Cookie值中文乱码问题解决方法
来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqia ...
- wampserver下打开phpMyAdmin出现403错误的问题解决方法
图1 图2 wamp下打开phpMyAdmin出现403错误的问题解决方法安装完wamp后打开其下的phpMyAdmin也就是路径http://localhost/phpmyadmin/ 出现[图一] ...
- Spring3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
原文:Spring3 报org.aopalliance.intercept.MethodInterceptor问题解决方法 一 开发环境:JDK5+Spring3.0.5+Myeclipse6.6+T ...
- virtualbox共享文件夹无访问权限问题解决方法
virtualbox共享文件夹无访问权限问题解决方法 早就困扰了,这次新装虚拟机又碰到了,记录下来. 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题的原因是不跟v ...
随机推荐
- 关于PLSQL启动用时较长的问题解决
问题: 打开登陆界面缓慢. 解决: 1.删除控制面板中的打印机 2.将打印机改为手动并停止启动状态 .
- windows10下mysql8.0.11忘记密码的解决办法
首先输入 新开一个cmd窗口,登录mysql,刷新权限表 FLUSH PRIVILEGES; 经过我再次修改密码测试,只用下面这条语句就可以了 ALTER USER 'root'@'localhost ...
- hdu 1023 卡特兰数《 大数》java
Train Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 由Leetcode详解算法 之 动态规划(DP)
因为最近一段时间接触了一些Leetcode上的题目,发现许多题目的解题思路相似,从中其实可以了解某类算法的一些应用场景. 这个随笔系列就是我尝试的分析总结,希望也能给大家一些启发. 动态规划的基本概念 ...
- Hibernate初学
什么是Hibernate? Hibernate,翻译过来是冬眠的意思,正好现在已经进入秋季,世间万物开始准备冬眠了.其实对于对象来说就是持久化. 我们从三个角度理解一下Hibernate: 一.Hib ...
- 浅析javascript高阶函数
什么是高阶函数:在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数: 1. 接受一个或多个函数作为输入: 2. 输出一个函数.在数学中它们也叫做算子(运算符)或泛函.微积分中的导数就是常见的例 ...
- ubuntu禁止系统自动升级之界面操作
##第一步:首先找到System Settings,如下图所示: ##第二步:然后找到Solfware & Updates,如下图所示: ##第三步:点击Solfwate & Upda ...
- Spring Boot—17MongoDB
在MongoDB中插入如下的数据 db.baike.insert( { _id: 'freemark', desc: '新一代模板语言', tag: [ 'IT', '模板语言' ], comment ...
- Android EditText方框验证码 短信验证码攻略
本文由xiawe_i提供. xiawe_i的博客地址是: http://www.jianshu.com/u/fa9f03a240c6 项目中有这样一个需求: 验证码页是四个方框,输入验证码方框颜色改变 ...
- Android 仿美团网,探索使用ViewPager+GridView实现左右滑动查看更多分类的功能
看下效果图,自己考虑下自己会如何实现,然后再继续看看作者的实现~ 不记得什么时候,我留意到到美团网首页有使用ViewPager+GridView实现左右滑动查看更多分类的一个功能,感觉它很有趣,于是想 ...