当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
};
};
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
};
};
相关文章推荐
- echarts.common.min.js
- echart报错: echarts.js:5073 Uncaught Error: Component series. not exists. Load it first
- 因数分解 因数分解是十分基本的数学运算,应用广泛。下面的程序对整数n(n>1)进行因数分解。 比如,n=60, 则输出:2 2 3 5。请补充缺失的部分。
- JS 浮点运算精度解决办法 (把小数转换为整数进行计算【但是不能超过js的整数上限】)
- js中数字转为整数,可以进行运算,保存两位小数
- ECharts 统计扩展 ecStat.js, 可以进行回归分析和均值方差计算
- js:制作一个简易的计数器:根据输入的两个整数和运算符,进行计算,然后输出计算结果
- 你知道的,javascript语言的执行环境是"单线程模式",这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行,因此很多时候需要进行“异步模式”,请列举js异步编程的方法。
- 因数分解 因数分解是十分基本的数学运算,应用广泛。下面的程序对整数n(n>1)进行因数分解。 比如,n=60, 则输出:2 2 3 5。请补充缺失的部分。
- safari浏览器使用js进行页面跳转
- 五种js判断是否为整数类型方式
- js中进行金额计算
- [js]js杂项陆续补充中...
- JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)
- js判断价格,必须为数字且不能为负数
- 如何对js里的变量进行子文本替换
- 给定按升序排序的整数数组,找到给定目标值的起始和终止位置。 您的算法的运行时复杂度必须是O(log n)的顺序。
- 【cocos2d-x从c++到js】17:使用FireFox进行JS远程调试
- js之 prototype 理解补充
- 用VC进行COM编程所必须掌握的理论知识