1、产生的原因
splitNumber:需要注意的是这个分割段数只是个预估值,最后实际显示的段数会在这个基础上根据分割后坐标轴刻度显示的易读程度作调整。
2、解决方法
①求出一组数据的最大值max,这里设置最大值为10的倍数
②根据最大值,设置interval
3、源码
app.title = '折柱混合';
function calMax(arr) {
var max = arr[0];
for (var i = 1; i < arr.length; i++) { // 求出一组数组中的最大值
if (max < arr[i]) {
max = arr[i];
}
}
var maxint = Math.ceil(max / 10); // 向上取整
var maxval = maxint * 10; // 最终设置的最大值
return maxval; // 输出最大值
}
var appregnum = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130];
var activenum = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.1, 20.4, 30.5];
var maxappreg = calMax(appregnum); //注册Y轴值
var maxactive = calMax(activenum); //活跃Y轴值
var interval_left = maxappreg / 5; //左轴间隔
var interval_right = maxactive / 5; //右轴间隔
option = {
//1、 格式化提示信息
tooltip: {
trigger: 'axis',
formatter: function(params) {
var name = params[0].name + "<br/>"; //x轴名称
var str = ''; //辅助变量,存储要展示的提示信息
// 循环存储
for (var i = 0; i < params.length; i++) {
str = str + params[i].marker + params[i].seriesName + ":" + params[i].value + "人<br/>";
}
// 返回结果值
return name + str;
},
},
toolbox: {
feature: {
dataView: {
show: true,
readOnly: false
},
magicType: {
show: true,
type: ['line', 'bar']
},
restore: {
show: true
},
saveAsImage: {
show: true
}
}
},
legend: {
data: ['注册', '活跃']
},
grid:{
width:'50%',
height:'50%'
},
xAxis: [{
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
axisPointer: {
type: 'shadow'
}
}],
yAxis: [{
type: 'value',
name: '注册',
min: 0,
max: maxappreg,
splitNumber: 5,
interval: interval_left,
},
{
type: 'value',
name: '活跃',
min: 0,
max: maxactive,
splitNumber: 5,
interval: interval_right,
}
],
series: [{
name: '注册',
type: 'line',
data: appregnum
},
{
name: '活跃',
type: 'line',
yAxisIndex: 1,
data: activenum
}
]
};
4、效果图