目前在改别人遗留的bug,需求:
宽度 自适应的情况下 展示不友好:宽度太大
上下不居中 需求 要 上下 无论是否 有内容 都要居中展示 以0刻度为标准
宽度 设置
series: [
{
name: '已付金额',
type: 'bar',
stack: 'one',
color:'#7198d2',
itemStyle: itemStylet,
barCategoryGap:10,
data: data1,
barWidth:15 宽度15规定
},
{
name: '未付金额',
type: 'bar',
stack: 'one',
color:'#f09266',
itemStyle: itemStylett,
barCategoryGap:10,
data: data2
}
]
高度调整
原理:给 y轴 设置 最大值 ,最小值,最大值和最小值 为 数据中 最大值的绝对值 这样 canvas就会基于 0刻度线居中
yAxis: {
axisLabel:{
formatter:function (value, index) {
if(value<0){
return -value;
}else{
return value;
}
}
},
min:-getMaxMin(data1,data2),
max:getMaxMin(data1,data2)
},
var data1 = [400,400,400,400];
var data2 = [-400,-6000,-600,-1000,];
var num=0;
function getAbcArr(data2) {
var arr=[];
$.each(data2,function (i, v) {
arr.push(Math.abs(v))
})
return arr
}
function getMaxMin(data1, data2) {
var arr=data1.concat(getAbcArr(data2));
return Math.max.apply(null,arr)
}
getMaxMin(data1,data2)
最后的效果图
新bug ,明明没有设置最后一个x轴加粗,显示出来就是加粗了
后来检查 发现时 这里的问题
interval: 0,// 0 强制显示所有,1为隔一个标签显示一个标签,2为隔两个
axisLabel:{
interval: 0,// 0 强制显示所有,1为隔一个标签显示一个标签,2为隔两个
rotate: -25,//标签旋转角度,在标签显示不下的时可通过旋转防止重叠
textStyle: {
fontSize: 10,//字体大小
}
},
由于字体比较多 所以对x轴显示 做了一些 配置 而interval:0导致了 这个bug
这里 把这个直接注释 就可以解决,默认都显示。