配置项如下
var curTime = getNowTime('1'); // 当天时间
// status 0事故类(三角形) 1异常类(圆形) 2越限类(方形)
// type 0红色代表动作,1绿色代表复归
var minDate = new Date(curTime+' 08:30:00').getTime();
// 散点数据(x轴下方)
var resData = [
{
name: '08:43:00',
value: [new Date(curTime+' 08:43:00').getTime(), 2],
status: '1',
type: '1',
},
{
name: '09:13:00',
value: [new Date(curTime+' 09:13:00').getTime(), 4],
status: '0',
type: '0',
},
{
name: '09:43:00',
value: [new Date(curTime+' 09:43:00').getTime(), 6.5],
status: '0',
type: '1',
},
{
name: '10:15:00',
value: [new Date(curTime+' 10:15:00').getTime(), 26],
status: '1',
type: '0',
},
{
name: '10:42:00',
value: [new Date(curTime+' 10:42:00').getTime(), 9],
status: '2',
type: '0',
},
{
name: '10:44:00',
value: [new Date(curTime+' 10:44:00').getTime(), 43],
status: '1',
type: '0',
},
{
name: '10:50:00',
value: [new Date(curTime+' 10:50:00').getTime(), 40],
status: '1',
type: '1',
},
{
name: '12:10:00',
value: [new Date(curTime+' 12:10:00').getTime(), 12],
status: '2',
type: '1',
},
{
name: '13:05:00',
value: [new Date(curTime+' 13:05:00').getTime(), 40],
status: '1',
type: '0',
},
{
name: '13:30:00',
value: [new Date(curTime+' 13:30:00').getTime(), 16],
status: '1',
type: '0',
},
{
name: '13:40:00',
value: [new Date(curTime+' 13:40:00').getTime(), 38],
status: '2',
type: '1',
},
{
name: '14:00:00',
value: [new Date(curTime+' 14:00:00').getTime(), 10],
status: '2',
type: '1',
},
{
name: '14:30:00',
value: [new Date(curTime+' 14:30:00').getTime(), 12],
status: '1',
type: '1',
},
{
name: '15:00:00',
value: [new Date(curTime+' 15:00:00').getTime(), 13],
status: '1',
type: '0',
},
{
name: '15:38:00',
value: [new Date(curTime+' 15:38:00').getTime(), 14],
status: '1',
type: '1',
},
];
// 散点数据(x轴上方)
var resData2 = [
{
value: [new Date(curTime+' 11:05:00').getTime(), 2],
symbol: 'emptyCircle',
itemStyle: {
color: 'red',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:10:00').getTime(), 2],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:15:00').getTime(), 2],
symbol: 'emptyCircle',
itemStyle: {
color: 'red',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:20:00').getTime(), 2],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:25:00').getTime(), 2],
symbol: 'emptyCircle',
itemStyle: {
color: 'red',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:30:00').getTime(), 2],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:35:00').getTime(), 2],
symbol: 'emptyCircle',
itemStyle: {
color: 'red',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:40:00').getTime(), 2],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 10,
},
];
var resData3 = [
{
value: [new Date(curTime+' 08:40:00').getTime(), 2],
symbol: 'circle',
itemStyle: {
color: '#ff0000',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 08:50:00').getTime(), 2],
symbol: 'circle',
itemStyle: {
color: '#00ff00',
},
symbolSize: 10,
},
];
var resData4 = [
{
value: [new Date(curTime+' 08:52:00').getTime(), 5],
symbol: 'circle',
itemStyle: {
color: '#ff0000',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:00:00').getTime(), 5],
symbol: 'circle',
itemStyle: {
color: '#00ff00',
},
symbolSize: 10,
},
];
var resData5 = [
{
value: [new Date(curTime+' 11:10:00').getTime(), 10],
symbol: 'circle',
itemStyle: {
color: '#ff0000',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 15:10:00').getTime(), 10],
symbol: 'circle',
itemStyle: {
color: '#00ff00',
},
symbolSize: 10,
},
];
var resData6 = [
{
value: [new Date(curTime+' 12:10:00').getTime(), 15],
symbol: 'triangle',
itemStyle: {
color: 'red',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 15:38:00').getTime(), 15],
symbol: 'arrow',
symbolRotate: 270,
itemStyle: {
color: 'blue',
},
symbolSize: 10,
},
];
var resData7 = [
{
value: [new Date(curTime+' 08:30:00').getTime(), 12],
symbol: 'arrow',
symbolRotate: 90,
itemStyle: {
color: 'blue',
},
symbolSize: 10,
},
{
value: [new Date(curTime+' 11:25:00').getTime(), 12],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 10,
},
];
// 渲染图表
drawChart();
// 渲染图表
function drawChart() {
var scatterData = [];
for (var i=0; i<resData.length; i++) {
var obj = {
itemStyle: {}
};
obj.value = resData[i].value;
obj.value[1] = -resData[i].value[1]; // 把分钟变成负数,好在x轴下方显示
var icon = '';
var color = '';
if (resData[i].status == '0') {
icon = 'triangle'
} else if (resData[i].status == '1') {
icon = 'circle'
} else if (resData[i].status == '2') {
icon = 'roundRect'
}
if (resData[i].type == '0') {
color = '#ff0000';
} else if (resData[i].type == '1') {
color = '#00ff00';
}
if (resData[i].show == 'false') {
obj.symbolSize = 0;
} else {
obj.symbolSize = 15;
}
obj.symbol = icon;
obj.itemStyle.color = color;
scatterData.push(obj);
}
var obj2 = {
value: [new Date(curTime+' 08:30:00').getTime(), 20],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 0,
};
var obj3 = {
value: [new Date(curTime+' 18:00:00').getTime(), 20],
symbol: 'circle',
itemStyle: {
color: 'green',
},
symbolSize: 0,
};
scatterData.push(obj2);
// scatterData.push(obj3);
// console.log(scatterData);
option = {
legend: {
data: ['列表'],
},
grid: {
left: '5%',
right: '5%',
bottom: '5%',
containLabel: true,
},
xAxis: {
name: '时间',
type: 'time',
min: minDate, // 当天08:30:00
splitNumber: 9,
axisLabel: {
formatter: function(value, index) {
return echarts.format.formatTime('hh:mm', new Date(value));
}
},
splitLine: {
show: false,
},
},
yAxis: {
type: 'value',
name: 'x',
position: 'bottom',
axisLabel: {
formatter: function(value) {
if (value > 0) {
return '';
} else {
return Math.abs(value);
}
}
},
splitLine: {
show: false,
},
},
series: [
{
name: '',
type: 'scatter',
data: scatterData,
markLine: {
animation: false,
symbolSize: 0,
itemStyle: {
normal: {
lineStyle: {
type: 'solid',
color: 'blue'
},
label: {
show: true,
position: 'end',
formatter: function() {
return '时间(分钟)';
}
}
},
},
data: [
// {
// name: '平均线',
// // 支持 'average', 'min', 'max'
// type: 'average'
// },
{
name: 'Y水平线',
yAxis: -40
}
]
},
},
{
name: '',
type: 'scatter',
data: resData2,
},
{
name: '',
type: 'line',
data: resData3,
},
{
name: '',
type: 'line',
data: resData4,
},
{
name: '',
type: 'line',
data: resData5,
},
{
name: '',
type: 'line',
lineStyle: {
color: 'blue',
},
data: resData6
},
{
name: '',
type: 'line',
lineStyle: {
color: 'blue',
},
data: resData7
},
]
};
}
// 获取时间
function getNowTime(type) { // type 1=年月日 2=时分秒 3=星期几
var time = '';
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
var weekArray = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var weekDay = date.getDay(); // 0~6 0=星期天
if (month < 10) {
month = '0' + month;
}
if (day < 10) {
day = '0' + day;
}
if (hours < 10) {
hours = '0' + hours;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
if (seconds < 10) {
seconds = '0' + seconds;
}
switch(type) {
case '0':
time = year + '.' + month + '.' + day + ' ' + hours + ':' + minutes + ':' + seconds;
break;
case '1':
time = year + '-' + month + '-' + day;
break;
case '2':
time = hours + ':' + minutes + ':' + seconds;
break;
case '3':
time = weekArray[weekDay];
break;
default:
}
return time;
}