多图示例
配置项如下
function formatTime(shijianchuo){
var date = new Date(shijianchuo);
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var second = date.getSeconds();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
if (hours >= 0 && hours <= 9) {
hours = "0" + hours;
}
if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
if (second >= 0 && second <= 9) {
second = "0" + second;
}
var currentdate = hours + seperator2 + minutes;
return currentdate;
};
function formatY(v){
let str;
if(v == "1"){
str = "一级";
}else if(v == "2"){
str = "二级";
}else if(v == "3"){
str = "三级";
}else if(v == "4"){
str = "四级";
}else if(v == "5"){
str = "五级";
}else{
str = "开始";
}
return str;
// return 1;
}
var datax = ["10:00","10:05","10:10","10:15","10:20","10:25","10:30","10:35","10:40","10:45",
"10:50"];
var startTime = "1611715974"; //开始时间
var statusStr = "饱满,无,一般|饱满,无,较好|较好,明显,一般|饱满,无,较好|饱满,无,一般|饱满,无,一般|饱满,无,正常|饱满,无,较好|饱满,无,很好|饱满,无,差|较好,轻微,差|较好,有,差|较好,隐性,一般|饱满,无,很好|饱满,无,差|饱满,无,很好|中等,轻微,一般|饱满,无,一般|饱满,无,一般|中等,轻微,差|饱满,无,较好|饱满,无,差|饱满,无,一般|饱满,无,正常|饱满,无,很好|饱满,无,差|较好,有,一般|较好,隐性,很好|饱满,无,很好|饱满,无,很好|饱满,无,一般|饱满,轻微,一般|饱满,无,正常|中等,轻微,差|较好,轻微,一般|饱满,无,一般|饱满,无,正常|较好,隐性,正常|饱满,轻微,一般|较差,轻微,差|饱满,轻微,正常|饱满,轻微,差|饱满,轻微,一般|中等,轻微,一般|饱满,无,一般|饱满,无,一般|中等,轻微,差|饱满,轻微,一般";
statusStr = statusStr.split("|");
//拿值
let flag = 0;
let js=[];
let pl=[];
let gz=[];
let timeList = [];
for(let j=0;j<statusStr.length;j++){
let blockList = statusStr[j].split(",");
for(let g=0;g<blockList.length;g++){
let stastr = blockList[g];
if(g == "0"){
if (stastr == "较差") {
js.push(1);
} else if (stastr == "略差") {
js.push(2);
} else if (stastr == "中等") {
js.push(3);
} else if (stastr == "较好") {
js.push(4);
} else {
js.push(5);
}
}else if(g == "1"){
if (stastr == "无") {
pl.push(1);
} else if (stastr == "隐性") {
pl.push(2);
} else if (stastr == "轻微") {
pl.push(3);
} else if (stastr == "有") {
pl.push(4);
} else {
pl.push(5);
}
}else{
if (stastr == "差") {
gz.push(1);
} else if (stastr == "一般") {
gz.push(2);
} else if (stastr == "正常") {
gz.push(3);
} else if (stastr == "较好") {
gz.push(4);;
} else {
gz.push(5);
}
}
}
timeList.push(startTime*1);
startTime=startTime*1+60;
}
let stackjs=[],stackpl=[],stackgz=[],demodata=[];
for(let j=0; j<js.length;j++){
stackjs.push(js[j]*1 -1);
stackpl.push(pl[j]*1 - 1);
stackgz.push(gz[j]*1 - 1);
demodata.push(1);
}
console.log(js,pl);
let demodatapl = [];
for(let h=0;h<demodata.length;h++){
let obj;
if(h%2 == "0"){
obj = {
value: 1,
itemStyle: {
color: '#a90000',
borderColor:"#a90000"
}
}
}else{
obj = {
value: 1,
itemStyle: {
color: '#ff6000',
borderColor:"#ff6000"
}
}
}
demodatapl.push(obj);
}
option = {
title: {
text: '指标示例',
left: 'left',
top: 0
},
legend:{
show:true
},
dataZoom:[
{type:"inside",xAxisIndex:[0,1,2],zoomLock:true},
// {type:"inside",xAxisIndex:1},
// {type:"inside",xAxisIndex:2},
// {type:"inside",xAxisIndex:3},
],
grid: [
{left: '4%', top: '4%', width: '90%', height: '22%',containLabel:"true"},
{left: '4%', top: '34%', width: '90%', height: '22%',containLabel:"true"},
{left: '4%', top: '64%', width: '90%', height: '22%',containLabel:"true"}
],
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
},
textStyle:{
color:'red'
},
backgroundColor: 'rgba(255, 255, 255, 1)',
borderColor:"#b6d88e",
borderWidth:1,
// position: function (pos, params, el, elRect, size) {
// var obj = {top: 10};
// obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 30;
// return obj;
// },
extraCssText: 'width: 140px'
},
axisPointer: {
link: {xAxisIndex: 'all'},
label: {
backgroundColor: 'red',
formatter:function(res){
console.log("res",res);
if(res.axisDimension == "x"){
return formatTime(res.value*1000);
}else{
console.log(res);
if(res.value*1 <=1){
return "一级";
}else if(res.value <=2){
return "二级";
}else if(res.value <=3){
return "三级";
}else if(res.value <=4){
return "四级";
}else if(res.value <=5){
return "五级";
}
}
}
},
borderColor:"#b6d88e",
},
xAxis: [
{gridIndex: 0,splitLine:{show:true}, data:timeList,axisLabel:{formatter:function(v){return formatTime(v*1000)}}},
{gridIndex: 1, data:timeList,axisLabel:{formatter:function(v){return formatTime(v*1000)}}},
{gridIndex: 2, data:timeList,axisLabel:{formatter:function(v){return formatTime(v*1000)}}}
],
yAxis: [
{gridIndex: 0,min: 0, max: 5,axisLabel:{
formatter:function(v){return formatY(v)},
},
splitLine:{
},
},
{gridIndex: 1, min: 0, max: 5,axisLabel:{formatter:function(v){return formatY(v)}}},
{gridIndex: 2, min: 0, max: 5,axisLabel:{formatter:function(v){return formatY(v)}}}
],
series: [
{
name: '',
type: 'line',
xAxisIndex: 0,
yAxisIndex: 0,
stack:"js",
data: stackjs,
barWidth:"100%",
symbol:false,
symbolSize:0,
smooth:0.5,
tooltip:{
show:false
},
itemStyle:{
},
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: 'rgb(255, 158, 68)'
}, {
offset: 1,
color: 'rgb(255, 70, 131)'
}])
},
},
// {
// name: 'I',
// type: 'bar',
// xAxisIndex: 0,
// yAxisIndex: 0,
// stack:"js",
// data: demodata,
// // barWidth:"100%",
// // symbol:'rect',
// // symbolSize:[30,10],
// itemStyle:{
// color:"#366fab",
// borderColor:"#366fab"
// },
// // lineStyle:{
// // color:'rgba(0,0,0,0)'
// // }
// // markLine: markLineOpt
// },
{
name: '',
type: 'bar',
xAxisIndex: 1,
yAxisIndex: 1,
data: stackpl,
stack:"pl",
barWidth:"100%",
tooltip:{
show:false
},
itemStyle:{
color:"rgba(0,0,0,0)",
borderColor:"rgba(0,0,0,0)"
}
},
{
name: 'II',
type: 'bar',
xAxisIndex: 1,
yAxisIndex: 1,
data: demodatapl,
stack:"pl",
barWidth:"100%",
},
{
name: '',
type: 'bar',
xAxisIndex: 2,
yAxisIndex: 2,
data: stackgz,
tooltip:{
show:false
},
stack:"gz",
barWidth:"100%",
itemStyle:{
color:"rgba(0,0,0,0)",
borderColor:"rgba(0,0,0,0)"
},
},
{
name: 'III',
type: 'bar',
xAxisIndex: 2,
yAxisIndex: 2,
data: demodata,
stack:"gz",
barWidth:"100%",
itemStyle:{
color:"#366fab",
borderColor:"#366fab"
},
},
// {
// name: 'IV',
// type: 'bar',
// xAxisIndex: 3,
// yAxisIndex: 3,
// data: dataAll[3],
// barWidth:"100%",
// // markLine: markLineOpt
// // symbol:'rect',
// // symbolSize:[30,10],
// itemStyle:{
// color:"#366fab",
// borderColor:"#366fab"
// },
// // lineStyle:{
// // color:'rgba(0,0,0,0)'
// // }
// }
]
};