您的位置:首页 > Web前端 > JavaScript

当eChart的Y轴必须是整数时,对原echarts_common.js进行补充

2017-10-13 09:47 197 查看
JS:

setCharts('charts',options,true);]

ECHARTS_COMMON.JS:

//在初始化echart的Y轴时,对其间隔和最小间隔数进行判断和指定,重写原Item_yAxis方法

//新增字段isLength,用来判断是否进入整数判断,如果Y轴必须要整数的话,设置为true

function setCharts(charts,options,isLength) {

var  myChart = echarts.init(document.getElementById(charts),'shine');
myChart.showLoading(); 
option.xAxis.data = options[0].xAxis;
codes = options[0].codes;
var series_arr=options[0].series;
var yAxis_arr= options[0].yAxis;
for (var j=0;j<options[0].yAxisCount;j++) {
var it =null;
//如果必须是整数则传入图表数值进行判断
if(isLength==true){
it = new Item_yAxis(series_arr,j);  
}else{
it = new Item_yAxis1();  
}

it.name = yAxis_arr[j];
option.yAxis[j] = it;
}

option.legend.data = options[0].legend;

$.each(series_arr, function(i, item) {
if (item.stack != null && item.stack != "") {
var it = new Item1(); 
it.stack = item.stack;
} else {
var it = new Item(); 
}
it.name = item.name;
it.yAxisIndex=item.yAxisIndex;
if (item.barWidth != null && item.barWidth != "") {
it.barWidth = item.barWidth;
} else {
it.barWidth = "20%"; 
       
}
it.data = item.data;
   option.series[i] = it;     
});
myChart.hideLoading();
myChart.setOption(option);
myChart.on('click', function (params) {
onclick(codes[params.dataIndex],params.seriesIndex);
//    window.open('https://www.baidu.com/s?wd=' + encodeURIComponent(params.name));
});

}

//需要规定Y轴没有小数的

var Item_yAxis = function(series_arr,index){  
var length=10;//默认初始Y轴分隔为10
//判断series_arr是否传入,传入说明确定要按整数判断
if(series_arr!=null && series_arr!=''){
var changeLength=true;//更改间隔数
var maxLength=0;//图表最大值
//循环图表值
$.each(series_arr[index].data, function(i, item) {
//如果图表有值大于10,则直接跳出循环,按照10的间隔显示
if(item>=10){
changeLength=false;
}else if(item>maxLength){//否则按照图表的值更新最大显示间隔
maxLength=item;
}
return;
});
//如果判断为需要改变最大显示间隔,则将最大显示间隔更改
if(changeLength==true){
length=maxLength;
}
}

    return {  

    name:'',

        type : 'value',

    splitLine:{show: false},

    splitNumber:length,

    minInterval: 1//必须为整数,但是前提间隔必须大于等于图表最大值,不然还是会有小数

   

    }; 

};

//不需要规定Y轴没有小数的

var Item_yAxis1 = function(){  

    return {  

    name:'',

        type : 'value',

    splitLine:{show: false},

    splitNumber:10

   

    }; 

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐