将Highcharts的最大Y值设置为精确值而不舍入

问题描述 投票:4回答:4

每次我在Highcharts中设置最小值和最大值时,我都永远不会获得带有发送的确切最小值和最大值的图形,但是总是有些接近。似乎Highcharts正在为轴选择一个间隔范围,如果我的最大值不符合正确的间隔,它将被忽略或四舍五入。

例如,如果我将Y轴的最小值设置为0,将最大值设置为3125,则我得到的Y轴从0开始,然后以500的增量递增到最大值3500,这根本不是我所需要的。想要。

我可以让图表使用确切的最大值吗?还是总是以某种奇怪的方式将其取整?

jquery highcharts
4个回答
8
投票

您可以做几件事。

1)将您的tickInterval设置为一个均分为最大值的数字

2)将y轴的'endOnTick'设置为false,并将maxPadding设置为0。这将把图表的max设置为您的规格,无论最后一个刻度线位于何处。

http://api.highcharts.com/highcharts#yAxis.tickInterval

http://api.highcharts.com/highcharts#yAxis.maxPadding

http://api.highcharts.com/highcharts#yAxis.endOnTick


3
投票

endOnTick属性设置为false。


1
投票

您可以使用http://api.highcharts.com/highcharts#yAxis.tickPositioner或在tickInterval设置jlbriggs时设置最小值/最大值。


0
投票

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;

快乐的编码。 :)

© www.soinside.com 2019 - 2024. All rights reserved.