Установка максимального значения Y для максимальной диаграммы без округления

Каждый раз, когда я устанавливаю свои минимальные и максимальные значения в Highcharts, я никогда не получаю графики с точными минимальными и максимальными значениями, которые я отправляю, но всегда что-то близкое. Кажется, что Highcharts выбирает интервал для осей, и если мой максимум не соответствует правильному интервалу, он игнорируется или округляется.

Например, если для оси Y я установил минимальное значение 0 и максимальное значение 3125, я получу ось Y, начинающуюся с 0, затем увеличивающуюся с шагом 500 до максимального значения 3500, что совсем не то, что я хочу.

Могу ли я заставить график использовать точный максимум или он всегда будет округляться каким-то странным образом?

3 ответа

Решение

Есть несколько вещей, которые вы можете сделать.

1) установите ваш tickInterval на число, которое делится равномерно на ваш максимум

2) установите для endOnTick значение false для вашей оси y и установите для maxPadding значение 0. Это установит максимальный график согласно вашей спецификации, независимо от того, где находится последний тик.

http://api.highcharts.com/highcharts

http://api.highcharts.com/highcharts

http://api.highcharts.com/highcharts

Установите для свойства endOnTick значение false.

Вы можете использовать http://api.highcharts.com/highcharts или установить минимальные / максимальные значения с помощью tickInterval, как было показано в 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;

Удачного кодирования.:)

Другие вопросы по тегам