需求:利用eCharts做一个数据折线图,分为 等待数量和请求数量
百分比 = 等待数量/请求数量(四舍五入,截取两位有效数字)
- 0% < 百分比 <= 50% 标域显示绿色
- 50% < 百分比 <100% 标域显示黄色
- 百分比 >= 100% 标域显示红色
下面展示部分关键代码:
先声明两个数组:
1 //存储百分比 2 var percent = new Array(); 3 //存储标域根据百分比划分要显示的颜色和位置 4 var markData= new Array();
此部分为eCharts数据展示
1 series : [{ 2 name:'请求量', 3 type:'line', 4 markArea : { 5 data:markData 6 } 7 }]
接下来做数据判断划分相应百分比的颜色和显示的位置
getPercent();存储百分比得到,percent(四舍五入,截取两位有效数字),此方法在这里不是关键,所以不做展示了
1 function getMarkData(index,colors) { 2 var data = [{ 3 xAxis: index, 4 yAxis:0, 5 itemStyle:{ 6 color: colors 7 } 8 },{ 9 xAxis: index + 1; 10 }]; 11 markData.push(data); 12 } 13 14 function markArea(){ 15 //用于获取百分比 16 getPercent(); 17 for(var i = 0 ; i < percent.length ; i++){ 18 if(percent[i] > 0 && percent[i] <= 0.5){ 19 getMarkData(i,'green'); 20 }else if(percent[i] >= 1){ 21 getMarkData(i,'red'); 22 }else if(percent[i] > 0.5 && percent[i] < 1){ 23 getMarkData(i,'yellow'); 24 }else{ 25 getMarkData(i,'white'); 26 } 27 } 28 }
最后直接调用就可以了。