在3.x版本柱状图中,数据较小时Y轴会出现小数刻度,当设置minInterval为整数时又会出现负数刻度。
Y轴只出现正整数刻度
option = {
color: ['#3398DB'],
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis : [
{
type : 'category',
data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisTick: {
alignWithLabel: true
}
}
],
yAxis : [
{
type : 'value',
// minInterval:1 //会出现负数刻度
}
],
series : [
{
name:'直接访问',
type:'bar',
barWidth: '60%',
data:[1,0,1,1,0,2,0] //数据较小情况下
}
]
}
设置一下 yAxis.min 试试
下面这样设置可以:
yAxis : [
{
type : 'value',
interval: 1, //会出现负数刻度
min: 0,
}
],
@MoonBall Thanks,测试可行。之前试过minInterval:1加min:0,但这两个是冲突的。
@MoonBall 又测试了下其他数据,interval设置为1并不会像minInterval那样强制所有刻度间隔最小为1,当数据出现小数时(如:[2.1,1.2,1,1,0,1,2]) Y轴刻度依旧会出现小数。但具体业务中我的数据都为整数,方法依然可行。
@kongxiangxiang 再设置下 yAxis.max = 3 就行
@MoonBall 上面例子数据随便造的,在具体应用中,要显示的数据(最大值)很可能是不确定的,设置max并不可行的。
这个可以根据自己的数据先计算出来嘛,然后在 setOptions
设置了interval之后如果数据相差比较大会出现Y轴坐标有很多的情况,那样怎么解决?
@HealerJTF 这种情况为什么要用interval呢?如果非要用可以将interval的值设置的大一些。
我试了一下就放弃了那种方式,然后又回到了起点的问题,Y轴的数值不是整数。你的是怎么解决的呢?
@HealerJTF 我当时是为了解决数据较小时,Y轴刻度会出现小数的问题。解决方法是:interval:1,min:0
喔喔。好的。谢谢。我再找找解决办法
@kongxiangxiang @HealerJTF 我用的3.4.5的版本依然这个样子。我目前的解决方案是,带有小数点的就不要给予label的文字
yAxis: {
type: "value",
axisLine: {
show: false,
onZero: false
},
axisTick: {
show: false
},
axisLabel: {
formatter: function (value, index) {
if (parseInt(value) != value) {
return "";
}
return parseInt(value);
}
},
minInterval: 1,
min: 0
}
我获取了数据数组的最大值,然后最小值设为0,并且设置如果最大值小于5就让最大值等于5,目前没发现问题。
@HealerJTF 这样的确可以,就是要多些一些代码。还要额外判定感觉好麻烦,所以我就没用。
Most helpful comment
下面这样设置可以: