Установка максимального значения 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 или установить минимальные / максимальные значения с помощью 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;
Удачного кодирования.:)