针对设备开关机、告警、停机等事件标记的散点图
- echartsX轴固定为时分(24小时),Y轴为具体日期
- 因为x轴只显示时分的话,只能代码生成固定[00:00~23:59]数组:
- 在组件页面初始化图表
- 图表展示
echartsX轴固定为时分(24小时),Y轴为具体日期
因为x轴只显示时分的话,只能代码生成固定[00:00~23:59]数组:
生成小时数组[00~23] 分钟数组[00~60] 代码
.
| |
| |
| |
| |
| |
| const timeArr = function (num: number) { |
| let arr = []; |
| for (let i = 0, j = num + 1; i < j; i++) { |
| if (i < 10) { |
| arr.push("0" + i); |
| } else { |
| arr.push("" + i); |
| } |
| } |
| return arr; |
| }; |
| |
| |
复制
将小时与分钟两数组合成 hh:mm 数组[00:00,00:01…,23:59] 代码
. 其实也可以继续生成hh:mm:ss的数组,就是一层一层往下套
| const time = (arr: string[], arr2: string[]) => { |
| let len1 = arr.length; |
| let len2 = arr2.length; |
| let end = []; |
| let r = 0; |
| while (r < len1) { |
| for (let l = 0; l < len2; l++) { |
| end.push(arr[r] + ":" + arr2[l]); |
| } |
| r++; |
| continue; |
| } |
| return end; |
| }; |
| |
复制
在组件页面初始化图表
| const eventEchartsRef = ref<HTMLDivElement>(); |
| const eventEchart = echarts.init(eventEchartsRef.value as HTMLDivElement); |
| |
| const hour = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24'] |
| const min = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60'] |
| let eventOption = { |
| title: { |
| text: "设备事件概览", |
| }, |
| grid: { |
| left: "3%", |
| right: "7%", |
| bottom: "7%", |
| containLabel: true, |
| }, |
| tooltip: { |
| axisPointer: { |
| show: true, |
| type: "cross", |
| lineStyle: { |
| type: "dashed", |
| width: 1, |
| }, |
| }, |
| showDelay: 0, |
| formatter: function (params: any) { |
| if (params.value.length > 1) { |
| return ( |
| params.seriesName + |
| " :<br/>" + |
| params.value[0] + |
| " " + |
| params.value[1] + |
| " " |
| ); |
| } else { |
| return ( |
| params.seriesName + |
| " :<br/>" + |
| params.name + |
| " : " + |
| params.value + |
| " " |
| ); |
| } |
| }, |
| }, |
| toolbox: { |
| feature: { |
| dataZoom: {}, |
| brush: { |
| type: ["rect", "polygon", "clear"], |
| }, |
| }, |
| }, |
| brush: {}, |
| legend: { |
| data: [ |
| { |
| name: "开机", |
| |
| icon: "triangle", |
| }, |
| { |
| name: "关机", |
| |
| icon: "circle", |
| }, |
| ], |
| left: "center", |
| bottom: 10, |
| }, |
| xAxis: [ |
| { |
| type: 'category', |
| boundaryGap: false, |
| axisLine: { onZero: false }, |
| data: time(hour, min), |
| show: true, |
| }, |
| ], |
| yAxis: [ |
| { |
| type: "category", |
| scale: true, |
| splitLine: { |
| show: false, |
| }, |
| }, |
| ], |
| series: [ |
| { |
| name: "开机", |
| type: "scatter", |
| emphasis: { |
| focus: "series", |
| }, |
| |
| data: [ |
| ['11:00', "2011-10-1"], |
| ['09:33', "2011-10-2"], |
| ['12:33', "2011-10-3"], |
| ['12:33', "2011-10-4"], |
| ['09:33', "2011-10-5"], |
| ['12:33', "2011-10-6"], |
| ['09:33', "2011-10-7"], |
| ['09:33', "2011-10-8"], |
| ['02:33', "2011-10-9"], |
| ['11:00', "2011-10-10"], |
| ], |
| itemStyle: { |
| borderColor: "green", |
| color: "green", |
| }, |
| markArea: { |
| silent: true, |
| itemStyle: { |
| color: "transparent", |
| borderWidth: 1, |
| borderType: "dashed", |
| }, |
| data: [ |
| [ |
| { |
| name: "开机", |
| xAxis: "min", |
| yAxis: "min", |
| }, |
| { |
| xAxis: "max", |
| yAxis: "max", |
| }, |
| ], |
| ], |
| }, |
| symbol: "triangle", |
| }, |
| |
| { |
| name: "关机", |
| type: "scatter", |
| emphasis: { |
| focus: "series", |
| }, |
| |
| data: [ |
| ['12:00', "2011-10-1"], |
| ['12:30', "2011-10-2"], |
| ['12:38', "2011-10-3"], |
| ['12:37', "2011-10-4"], |
| ['12:30', "2011-10-5"], |
| ['12:39', "2011-10-6"], |
| ['12:30', "2011-10-7"], |
| ['12:30', "2011-10-8"], |
| ['10:30', "2011-10-9"], |
| ['12:00', "2011-10-10"], |
| ], |
| symbol: "circle", |
| itemStyle: { |
| borderColor: "red", |
| color: "red", |
| }, |
| markArea: { |
| silent: true, |
| itemStyle: { |
| color: "transparent", |
| borderWidth: 1, |
| borderType: "dashed", |
| }, |
| data: [ |
| [ |
| { |
| name: "关机", |
| xAxis: "min", |
| yAxis: "min", |
| }, |
| { |
| xAxis: "max", |
| yAxis: "max", |
| }, |
| ], |
| ], |
| }, |
| }, |
| ], |
| }; |
复制
图表展示
