在 Highcharts 中手动设置 y 轴最小值和最大值以及放大行为
Manually set y-axis min and max value and zoom-in behaviour in Highcharts
我想知道在给定 minValue、maxValue 和 tickAmount 渲染之前,Highcharts 将在每个轴上设置的舍入最小值和最大值。
我目前的解决方案是手动计算 tickPositions,以便它准确显示我设置的内容。所以在某种程度上,我事先知道它们的价值。这个问题是当我放大时,没有为放大界面添加新的刻度。这是因为 tickPositions 属性阻止了它添加新的报价。
我有两个问题:
- Highcharts 是否提供任何方法来计算最小值和最大值?这样我就可以事先得到那些。
- 或者是否有 Highcharts 遵循的算法来计算这些值?我将再次实施该算法以获得这些值?
- 或者有没有办法自己手动实现添加新报价行为?这是为了使用 tickPositions。
您可以使用tickPositioner
函数来定义您自己的绘制刻度的逻辑:
yAxis: {
tickPositioner: function(min, max) {
if (this.chart.resetZoomButton) { // zoomed chart
return [1, 7]
}
return [1, 3, 5, 7]
}
}
现场演示: http://jsfiddle.net/BlackLabel/s8Ldhfcy/
API参考:https://api.highcharts.com/highcharts/yAxis.tickPositioner
我想知道在给定 minValue、maxValue 和 tickAmount 渲染之前,Highcharts 将在每个轴上设置的舍入最小值和最大值。
我目前的解决方案是手动计算 tickPositions,以便它准确显示我设置的内容。所以在某种程度上,我事先知道它们的价值。这个问题是当我放大时,没有为放大界面添加新的刻度。这是因为 tickPositions 属性阻止了它添加新的报价。
我有两个问题: - Highcharts 是否提供任何方法来计算最小值和最大值?这样我就可以事先得到那些。 - 或者是否有 Highcharts 遵循的算法来计算这些值?我将再次实施该算法以获得这些值? - 或者有没有办法自己手动实现添加新报价行为?这是为了使用 tickPositions。
您可以使用tickPositioner
函数来定义您自己的绘制刻度的逻辑:
yAxis: {
tickPositioner: function(min, max) {
if (this.chart.resetZoomButton) { // zoomed chart
return [1, 7]
}
return [1, 3, 5, 7]
}
}
现场演示: http://jsfiddle.net/BlackLabel/s8Ldhfcy/
API参考:https://api.highcharts.com/highcharts/yAxis.tickPositioner