每次我在Highcharts中设置最小值和最大值时,我都永远不会获得带有发送的确切最小值和最大值的图形,但是总是有些接近。似乎Highcharts正在为轴选择一个间隔范围,如果我的最大值不符合正确的间隔,它将被忽略或四舍五入。
例如,如果我将Y轴的最小值设置为0,将最大值设置为3125,则我得到的Y轴从0开始,然后以500的增量递增到最大值3500,这根本不是我所需要的。想要。
我可以让图表使用确切的最大值吗?还是总是以某种奇怪的方式将其取整?
您可以做几件事。
1)将您的tickInterval设置为一个均分为最大值的数字
2)将y轴的'endOnTick'设置为false,并将maxPadding设置为0。这将把图表的max设置为您的规格,无论最后一个刻度线位于何处。
http://api.highcharts.com/highcharts#yAxis.tickInterval
将endOnTick属性设置为false。
您可以使用http://api.highcharts.com/highcharts#yAxis.tickPositioner或在tickInterval设置jlbriggs时设置最小值/最大值。
如jlbriggs所说,
Highcharts.Options
.....
yAxis: {
lineWidth: 1,
maxPadding: 0,
endOnTick: false,
labels: {
formatter: (value) => {
if(value.isLast !== true) {
const label_value = Math.ceil((Math.floor(value.value)) / 100) * 100; // round in between numbers to hundreds.
return this.yAxisLabelFormatting(label_value);
}
return this.yAxisLabelFormatting(value.value); // Maximum number of Y axis, you can do your code logic here.
}
}
}
...
内部动态代码:
const interval = (this.axisYmax / 8); // Here I'm using 8, you can use any number as your requirement.
(<Highcharts.AxisOptions>this.highChartOptions.yAxis)['tickInterval'] = interval;
快乐的编码。 :)