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`,则该四个值是绝对的 ...
随机推荐
- 用javaScript获取页面元素值
用JavaScript获取页面元素常见的三种方法: getElementById() ...
- vs2017添加引用出错:对COM组件的调用返回了错误HRESULT E_FAIL
1.以管理员身份打开 Developer Command Prompt for VS 2017(vs2017开发人员命令提示符) 2.定位到你的vs2017的安装目录 例:E:\Program Fil ...
- php取余运算(%) 注意事项
<?php //php取余运算(%)的那点事,php取余数用%符号,即为模运算 //理论上应该输出45才对,可是实际运算结果是44 $val=9.45; $result=$val*100; ec ...
- 使用Angular2的Http发送AJAX请求
使用Angular2的Http发送AJAX请求 Angular的文档并不详细,甚至API文档也有一些错误.经过查阅资料并经大量实验,终于明确了Angular的Http发送Ajax请求的方式方法.本文描 ...
- adb shell 命令之----pm
常用的用法: 查看已经安装的包: pm list packages 查看已经安装的包以及apk路径(-3:只看第三方应用: -s:只看系统应用) -f: see their associated fi ...
- vue实现简单的购物车功能
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- 09.vue中样式-style
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Pandas 基础(11) - 用 melt 做格式转换
melt 也可以用来做数据格式转换, 请看下图, 我们可以用 melt 把左表转成右表的格式: 首先引入文件(已上传): df = pd.read_csv('/Users/rachel/Sites/p ...
- C#三层架构
C#三层架构 三层架构分为:表现层(UI(User Interface)).业务逻辑层(BLL(Business Logic Layer)).数据访问层(DAL(Data Access Layer)) ...
- 716-River Crossing
深奥dp,状态转来转去,反正就是能解题 #include <cstdio> #include <iostream> #include <cstring> #incl ...