echarts背景分割区域填充不同颜色(x轴为time),实时刷新
先来看下图片吧,这是实现效果;
思路:
因为要实时刷新,可以使用setInterval(),但是要控制好定时器的起与停,否则容易错乱以及页面卡死;
主要就是利用定时器五秒刷新,重绘echarts图;=》setOption
这是代码:
代码我已经放到echarts社区,在社区可以看到效果,或者粘贴到你自己的编辑器上;
option = {
backgroundColor: '#000',
tooltip: {
trigger: 'axis',
formatter: function (params) {
return params[0].value[1];
},
axisPointer: {
type: 'line',
axis: 'x',
animation: false,
snap: true,
lineStyle: {
color: '#fff',
type: 'dashed'
}
},
},
color: [
'#db4d4c',
'#ffcf49',
'#27ccc8',
'#d3df62',
'#07479d',
'rgba(7, 71, 157, 0.46)',
],
grid: {
left: '10%',
top: '13%',
right: '10%',
bottom: '18%',
},
xAxis: {
type: 'time',
splitLine: {
show: false
},
nameTextStyle: {
color: '#fff',
fontSize: 12,
},
axisLabel: {
color: '#fff',
fontSize: 12,
interval: 0,
formatter:function(val) {
var date = new Date(val);
var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
var m = (date.getMinutes() <10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
var s = (date.getSeconds() <10 ? '0' + date.getSeconds() : date.getSeconds());
return h+m+s;
}
},
axisTick: {
inside: true,
alignWithLabel: true,
interval: 0,
lineStyle: {
color: ['rgba(255,255,255,.5)'],
}
},
axisLine: {
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
type: 'dashed',
}
}
},
yAxis: [
{
type: 'value',
splitNumber: 10,
min: 40,
max: 195,
name: 'bpm',
nameTextStyle: {
color: '#fff',
fontSize: 12,
},
axisLabel: {
color: '#fff',
fontSize: 12,
},
axisTick: {
show: false,
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
}
},
axisLine: {
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
}
},
splitLine: {
show: false,
}
},
{
type: 'category',
splitNumber: 10,
data: [40,50,60,70,80,90,117,136,156,175,195],
name: 'bpm',
nameTextStyle: {
color: '#fff',
fontSize: 12,
},
axisLabel: {
show: false
},
axisTick: {
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
}
},
axisLine: {
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
}
},
splitLine: {
show: true,
interval: 0,
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
type: 'dashed',
width: 1,
}
},
splitArea: {
show: true,
areaStyle: {
color: [
'rgba(7, 71, 157, 0.46)',
'rgba(7, 71, 157, 0.46)',
'rgba(7, 71, 157, 0.46)',
'rgba(7, 71, 157, 0.46)',
'rgba(7, 71, 157, 0.46)',
'rgba(7, 71, 157, 0.46)',
'#07479d',
'#d3df62',
'#27ccc8',
'#ffcf49',
'#db4d4c',
]
}
},
},
{
name: '%',
nameTextStyle: {
color: '#fff',
fontSize: 12,
},
axisLabel: {
color: '#fff',
fontSize: 12,
},
axisTick: {
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
}
},
axisLine: {
lineStyle: {
color: ['rgba(255,255,255,0.25)'],
}
},
type: 'category',
data: [0,10,20,30,40,50,60,70,80,90,100]
},
{
type: 'category',
offset: -600,
data: ['','','','','','安静心率区间','热身区间','燃烧脂肪区间','有氧运动区间','无氧运动区间','最大强度'],
axisLabel: {
color: '#fff',
fontSize: 12,
align: 'top',
},
axisTick: {
show: false
},
axisLine: {
show: false,
}
},
],
series: [
{
type: 'line',
symbol: 'circle',
smooth: true,
showSymbol: false,
label: {
normal: {
show: false,
},
},
labelLine: {
normal: {
show: false
}
},
itemStyle : {
normal : {
color:'#c205c0',
lineStyle: {
color: '#c205c0',
shadowColor: 'rgba(188,138,187,0.8)',
shadowBlur: 10,
}
},
},
zlevel: 100,
data: [[1527476583000,100],[1527476584000,195],[1527476585000,100],[1527476593000,90]]
}
],
dataZoom: [
{
type: 'slider',
show: true,
xAxisIndex: [0],
height: 20,//组件高度
bottom: 10,
start: 0,
end: 100,
backgroundColor: '#0355c3',
fillerColor: 'rgba(43, 187, 239, 0.2)',
borderColor: '#2bbbef',
showDataShadow: false,
showDetail: false,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '20',
handleStyle: {
color: '#2bbbef',
},
axisTick: {
inside: true,
alignWithLabel: true,
lineStyle: {
color: ['rgba(255,255,255,.5)'],
}
},
},
{
type: 'inside',
}
],
};
let chart = new echarts.init(document.getElementById('myChart'));
let timer = null;
timer = setInterval(() => {
chart.setOption(option);
},5000)
注意:离开当前页面时别忘记清除定时器;
发现x轴为time,series数据类型为二维数组,类似于[[1527476583000,100],[1527476584000,195],[1527476585000,100],[1527476593000,90]],第一位为毫秒数,第二为y轴value值;
echarts背景分割区域填充不同颜色(x轴为time),实时刷新的更多相关文章
- Echarts学习记录——如何给x轴文字标签添加事件
Echarts学习记录——如何给x轴文字标签添加事件 关键属性 axisLabel下属性clickable:true 并给图表添加单击事件 根据返回值判断点击的是哪里 感觉自己的方法有点变扭,有更好办 ...
- python opencv3 背景分割 mog2 knn
git:https://github.com/linyi0604/Computer-Vision 使用mog2算法进行背景分割 # coding:utf-8 import cv2 # 获取摄像头对象 ...
- 13 KNN背景分割器
传统的前景背景分割方法有GrabCut,分水岭算法,当然也包括一些阈值分割的算法.但是这些算法在应用中往往显得鲁棒性较弱,达不到一个好的分割效果. 现代的背景分割算法融入了机器学习的一些方法来提高分类 ...
- Opencv中KNN背景分割器
背景分割器BackgroundSubtractor是专门用来视频分析的,会对视频中的每一帧进行"学习",比较,计算阴影,排除检测图像的阴影区域,按照时间推移的方法提高运动分析的结果 ...
- Echarts中线状图的X轴坐标标签倾斜样式
在echarts中应用线状图时可以展现很多的数据,而当数据量过多的时候,X轴的坐标就会显示不全,因为整个图形的宽度是一定的,X轴的全长是一定的 http://www.cnblogs.com/phpgc ...
- echarts 柱状图 X(Y)轴数据过多时,滑动以及内置缩放的问题
前言:在开发中碰到的情况(菜鸟出门). 在使用echarts 图表的时候发现要展示的数据过多,但是系统留的展示框太小,造成数据都挤压在一块(不好看而且新感觉很不专业). ...
- echarts使用笔记四:双Y轴
1.双Y轴显示数量和占比 app.title = '坐标轴刻度与标签对齐'; option = { title : { //标题 x : 'center', y : 5, text : '数量和占比图 ...
- Echarts 背景渐变柱状图
var dom = document.getElementById("container"); var myChart1 = echarts.init(dom); var app ...
- echarts背景颜色渐变的三种类型
// 线性渐变,多用于折线柱形图,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord 为 `true`,则该四个值是绝对的 ...
随机推荐
- 复习-css边框和背景属性
css边框和背景属性 border:所有边框属性 border-width:四条边框的宽度 border-style:设置边框样式,主要有dotted.solid.double border-colo ...
- codeforces #305 E Mike and friends
原问题可以转化为:给定第k个字符串,求它在L-R的字符串里作为子串出现了多少次 定义子串为字符串的某个前缀的某个后缀(废话) 等价于我们把一个字符串插入到trie里,其过程中每个经过的节点和其向上的f ...
- MySQL插入命令_INSERT INTO
MySQL允许将一个或多个元组插入已存在的table中. 格式:INSERT INTO 表名 (属性名1,属性名2,属性名3) VALUES (value1,value2,value3); ...
- BIOS备忘录之EC常用知识点
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...
- 谷歌技术"三宝"之GFS
题记:初学分布式文件系统,写篇博客加深点印象.GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理. 虽然"The Google File System " 是03年发表的老文 ...
- [C++ Primer Plus] 第4章、复合类型(一)程序清单——指针new和delete
程序清单4.1 #include<iostream> using namespace std; void main(){ ]; yams[]=; yams[]=; yams[]=; ]={ ...
- freeswitch设置支持视频语音编码
1.修改FreeSWITCH安装路径下/conf/var.xml文件中,增加: <X-PRE-PROCESS cmd=="set" data="proxy_medi ...
- UVA1160 X-Plosives
思路 每个元素设为点,化合物设为边 不能出现k条边k个点的环 直接并查集检查即可 代码 #include <cstdio> #include <algorithm> #incl ...
- Sql语句中IN和exists的区别及应用
表展示 首先,查询中涉及到的两个表,一个user和一个order表,具体表的内容如下: user表: order表: in 确定给定的值是否与子查询或列表中的值相匹配.in在查询的时候,首先查询子查询 ...
- Bioconductor软件安装与升级
1 安装工具Bioc的软件包不能使用直接install.packages函数,它有自己的安装工具,使用下面的代码: source("https://bioconductor.org/bioc ...